使用array.splice()添加和删除特定的数组元素

时间:2017-11-21 17:22:05

标签: javascript arrays

是否可以添加到数组的特定部分,然后删除数组的特定部分,在这种情况下使用arr.splice()删除结束值?

我目前这样做:

var arr = [1,2,3,4,5,6,7,8,9];
arr.splice(0,0,"test");

应返回:

"test",1,2,3,4,5,6,7,8,9
然后我做了:

arr.pop();

应返回:

"test",1,2,3,4,5,6,7,8

我想知道是否可以通过arr.splice()方法执行此操作,或者是否有任何更干净的方法来执行此操作,因为我可能会这样做几次,所以我最终会类似的东西:

arr.splice(0,0,"test");
arr.pop();
arr.splice(1,0,"test2");
arr.pop();

查看它建议的array.splice文档我只能删除我将新元素放入的位置中的元素,而不是另一个元素。

2 个答案:

答案 0 :(得分:0)

回答我在评论中确认的原始问题。使用splice方法或可能在javascript中的任何其他单个语句,不可能提供单独的索引来插入和另一个在数组中删除。如果我真的需要它,尝试在单个语句中实现这一目标的最佳方法是创建自己的函数,这在大多数情况下似乎都是适得其反的。

答案 1 :(得分:0)

您可以使用Array.from()在一次调用中设置数组特定索引的.length和值

var arr = [1,2,3,4,5,6,7,8,9];

arr = Array.from({length:arr.length - 1, ...arr, 0:"test"});

console.log(arr);

要实现问题中描述的模式,您可以选择使用循环和Object.assign()

var arr = [1,2,3,4,5,6,7,8,9];
var n = 0;
var prop = "test";
while (arr.length > 1) {
  Object.assign(arr, {length:arr.length -1,...arr, [n]:!n ? prop : prop+n});
  ++n;
  console.log(arr);
}