Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 - Fatal编程技术网

什么';在JavaScript中,从容器中动态添加或删除对象的最佳方法是什么?

什么';在JavaScript中,从容器中动态添加或删除对象的最佳方法是什么?,javascript,Javascript,例如,我有一个字符串数组,['12','34','56'],我想通过添加额外的元素('78','90')或删除一些元素('34','56')来动态更新这个数组 不确定是否有更好的数据结构/库来完成这项工作。有人能为JS新手做点什么吗?在JavaScript中,您通常可以使用提供的数组和对象做任何事情 要添加元素,请使用 为了正确地删除元素而不留下洞,您需要找到它们的索引(您可以在好的浏览器中使用,页面上有一个用于IE的垫片)并使用 请注意,如果您已经知道索引和计数,则只需执行以下操作即可 arr

例如,我有一个字符串数组,
['12','34','56']
,我想通过添加额外的元素(
'78','90'
)或删除一些元素(
'34','56'
)来动态更新这个数组


不确定是否有更好的数据结构/库来完成这项工作。有人能为JS新手做点什么吗?

在JavaScript中,您通常可以使用提供的数组和对象做任何事情

要添加元素,请使用

为了正确地删除元素而不留下洞,您需要找到它们的索引(您可以在好的浏览器中使用,页面上有一个用于IE的垫片)并使用

请注意,如果您已经知道索引和计数,则只需执行以下操作即可

array.splice(1, 2); //Removes 2 elements starting at index 1
还请注意,
splice
也可以使用相同的调用添加元素。把它们作为最后的参数。这意味着你可以这样做:

var array = ["12", "34", "56"];
array.splice(1, 2, "78", "90"); //array is now ["12", "78", "90"]

添加很简单,只需使用
push()
方法将元素添加到数组的末尾

您可以分别使用
shift()
pop()
删除第一个/最后一个项目,但如果要删除特定元素,需要使用
indexOf()
查找该元素的索引,然后使用
splice()
将其删除

有关方法的更多信息,请参阅。

添加到数组使用

删除特定元素可能需要更多的工作。为此,您需要将数组复制到一个新数组中(不包含要删除的元素)

johnresig(jQuery的创建者)发布了一个函数,可以通过索引删除数组元素(您需要首先获得索引)。他的职能是

注意:可能不适用于所有浏览器。在学习了如何使用基本的ECMAScript数组操作(如其他答案所述)后,有一个函数可以将其添加到较旧的浏览器中。

我推荐一套。主要是
map
flatmap
过滤器

这些在函数中被合并为一个。然而,类似的构造可以在其他地方找到,例如(不幸的是没有
flatmap
),或其他库,如,或手动创建的库(这是一个很好的学习练习)


快乐编码。

< P>这里的每个人似乎都在建议基于数组的解决方案,但是如果你要做的就是添加/移除元素并检查它们是否存在,你可以考虑使用一个对象作为哈希表。

var elems = {
   'a': true,
   'b':true
};

//add someone to the list
elems['c'] = true;

//check if someone is in the list
elems.hasOwnProperty('c');

//remove someone from the list
delete elems[c];

与添加数组元素相关:查看并转到任何Javascript资源,查找数组对象并研究其中的方法。你不可能每次想知道如何添加一个和两个,就在这里问一个问题来学习Javascript。了解如何从所有资源中学习。
var array = ["12", "34", "56"];
array.splice(1, 2, "78", "90"); //array is now ["12", "78", "90"]
var arr = ['12', '34', '56'];
arr.push('78', '90');
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};
var arr = ['12', '34', '56'];
arr.remove(arr.indexOf('34'));
arr.remove(arr.indexOf('56'));
var arr = ['12', '34', '56'];
arr.splice(arr.indexOf('34'), 1);
arr.splice(arr.indexOf('56'), 1);
var elems = {
   'a': true,
   'b':true
};

//add someone to the list
elems['c'] = true;

//check if someone is in the list
elems.hasOwnProperty('c');

//remove someone from the list
delete elems[c];