Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加删除过滤器数组Javascript_Javascript_Jquery_Arrays_Grep - Fatal编程技术网

添加删除过滤器数组Javascript

添加删除过滤器数组Javascript,javascript,jquery,arrays,grep,Javascript,Jquery,Arrays,Grep,1) 我正在寻找内置的jquery函数,它可以从数组中添加/删除/获取项。 或者一个更好的方法来做我在下面做过的同样的事情。虽然下面的代码有效,但我觉得应该有更好的方法 我不太擅长JavaScript,所以这段代码可能看起来很糟糕:) 2) 我正在使用 var tempItems = Object.assign({}, addItem(items, elementValue, elementText)) 添加一个项目后,我希望引用位于不同的临时对象中,因为我必须使用主列表和筛选列表。是否有一

1) 我正在寻找内置的jquery函数,它可以从数组中添加/删除/获取项。 或者一个更好的方法来做我在下面做过的同样的事情。虽然下面的代码有效,但我觉得应该有更好的方法

我不太擅长JavaScript,所以这段代码可能看起来很糟糕:)

2) 我正在使用

var tempItems = Object.assign({}, addItem(items, elementValue, elementText)) 
添加一个项目后,我希望引用位于不同的临时对象中,因为我必须使用主列表和筛选列表。是否有一种方法可以添加一个项目并获取另一个返回项目的实例

可能Object.assign是我难以添加/删除/获取项目的根本原因


欢迎并赞赏任何建议。谢谢大家!

您可以使用内置javascript函数(不是jquery:):


要返回addItem的新副本,可以使用Object.assign({},…)复制addItems函数本身内部的项。

实际上可以使用在数组上工作的本机筛选器方法。应该是这样的:

函数findElement(项、元素值){
让结果=项。过滤器(函数(项){
返回项。值===elementValue;
})
console.log(result);//应输出所需的结果

}
我使用了一些jquery函数,但正如我所说,我需要一个新的副本,我使用的是Object.assign({},addItem(items,elementValue,elementText)),之后所有这些都停止了工作。如果我在数组中添加一个新项并返回一个新数组的副本,而不是引用旧数组或不是对象,所有这些都会起作用。你能举个例子说明怎么做吗?试试:
函数addItem(items,elementValue,elementText){const itemsCopy=Object([],items);//这是副本,进行修改并相应返回
。。。
var tempItems = Object.assign({}, addItem(items, elementValue, elementText)) 
// Finding an item
items.find(function(item) { return item.Value == '3'})

// Removing/filtering out an item (returns a new copy)
items.filter(function(item) { return item.Value !== '3'})