繁体   English   中英

在类似数组的对象中添加/删除元素

[英]add/remove elements in array-like object

我有一个类似数组的对象:

[ 1:Array[10], 2: Array[2], 3: Array[2], 4: Array[2], 5: Array[3], 6: Array[1]]

我试图删除前两个元素,做一些事情,然后在同一位置再次插入它们。

这是我的工作:

array = Array.prototype.splice.call(array, 0,2);

在firefox中记录array ,它显示以下内容:

Array [ <2 empty slots>, Array[1], Array[2], Array[3], Array[1] ]

对我来说不错,我删除了前两个元素,该数组现在从2个空插槽开始。

现在,我希望将对象添加到这两个空插槽中。

为了简单起见,让我们从数组中删除项目,然后在同一位置再次插入它们:

var twoFirstItems = Array.prototype.slice.call(array, 0,2);
array = Array.prototype.splice.call(array, 0,2);

现在,要重新插入twoFirstItems我认为我可以这样做:

array.unshift(twoFirstItems)

这不能按预期方式工作,它插入了数组,但是没有修改之前的key 我认为这与做unshift不与工作的同一array-like object与一个array

那么,如何正确地将元素删除/插入到array-like-object呢?

如果我执行以下操作:

  console.log(array);
  console.log(typeof array);

结果:

Array [ <1 empty slot>, Array[2], Array[2], Array[2], Array[3], Array[1] ]
object

没有任何复杂性,您只需在该索引处re-assign修改后的数组即可。

 var a = [ [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6] ] a[0] = a[0].map((el) => el * 10) a[1] = a[1].map((el) => el * 20) console.log(a) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM