2

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

['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 是可以接受的,但我不确定它会有什么帮助。

4

1 回答 1

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您可以使用传递给构造函数的参数来控制要插入的项目数。

于 2014-05-29T07:02:06.987 回答