将任意数量的元素插入数组中

时间:2014-05-29 06:51:39

标签: javascript jquery arrays array-splice

假设我有一个这样的数组:

['foo', 'bar', 'baz']

我想从第2位开始插入3个元素:

['foo', 'bar', null, null, null, 'baz']

我可以像这样使用Array.prototype.splice()

['foo', 'bar', 'baz'].splice(2, 0, null, null, null);

但是,我希望插入任意数量的元素,或者出于我正在做的目的,重复上一个元素的任意数量时间也没关系。我想要的结果:

// When position = 2 and n = 3
['foo', 'bar', null, null, null, 'baz']

// Alternatively, repeat the element at position-1:
['foo', 'bar', 'bar', 'bar', 'bar', 'baz']

我该怎么做? jQuery是可以接受的,但我不确定它会有什么帮助。

1 个答案:

答案 0 :(得分:1)

我可以在插入undefined值时提出解决方案,而不是null

var a = ['foo', 'bar', 'baz']
a.splice.apply(a, [2, 0].concat(Array(3)));
console.log(a); // ["foo", "bar", undefined, undefined, undefined, "baz"] 

您可以使用传递给Array构造函数的参数来控制要插入的项目数。