猿问

如何将项插入特定索引(JavaScript)的数组中?

如何将项插入特定索引(JavaScript)的数组中?

我正在寻找JavaScript数组插入方法,其样式为:

arr.insert(index, item)

最好是在jQuery中,但是任何JavaScript实现都可以。


ITMISS
浏览 1381回答 4
4回答

繁星点点滴滴

您可以实现Array.insert方法这样做:Array.prototype.insert = function ( index, item ) {     this.splice( index, 0, item );};然后你可以像这样使用它:var arr = [ 'A', 'B', 'D', 'E' ];arr.insert(2, 'C');// => arr == [ 'A', 'B', 'C', 'D', 'E' ]

GCT1015

除了剪接之外,您还可以使用这种方法,它不会对原始数组进行变异,而是使用添加的项创建一个新数组。你通常应该尽可能避免突变。我在这里用ES6传真机。const items = [1, 2, 3, 4, 5]const insert = (arr, index, newItem) => [  // part of the array before the specified index  ...arr.slice(0, index),  // inserted item  newItem,  // part of the array after the specified index  ...arr.slice(index)]const result = insert(items, 1, 10)console.log(result)// [1, 10, 2, 3, 4, 5]这可以通过稍微调整函数以使用REST运算符来添加多个项,并在返回的结果中进行扩展。const items = [1, 2, 3, 4, 5]const insert = (arr, index, ...newItems) => [  // part of the array before the specified index  ...arr.slice(0, index),  // inserted items  ...newItems,  // part of the array after the specified index  ...arr.slice(index)]const result = insert(items, 1, 10, 20)console.log(result)// [1, 10, 20, 2, 3, 4, 5]
随时随地看视频慕课网APP
我要回答