我正在寻找一种JavaScript数组插入方法,其风格为:。
arr.insert(index, item)
最好是在jQuery中,但目前任何JavaScript实现都可以。
你想要的是本地数组对象上的splice函数。
splice
arr.splice(index, 0, item);将在指定的索引处向arr插入item(先删除0项,也就是说,它只是一个插入)。
arr.splice(index, 0, item);
arr
item
0
在这个例子中,我们将创建一个数组并在索引2处添加一个元素。
var arr = []; arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; arr[3] = "Kai Jim"; arr[4] = "Borge"; console.log(arr.join()); arr.splice(2, 0, "Lene"); console.log(arr.join());
你可以通过这样做实现Array.insert方法。
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' ]
如果你想一次向数组中插入多个元素,请看这个Stack Overflow的答案:https://stackoverflow.com/questions/1348178/a-better-way-to-splice-an-arrray-into-an-array-in-javascript
此外,这里还有一些函数来说明这两个例子。
function insertAt(array, index) { var arrayToInsert = Array.prototype.splice.apply(arguments, [2]); return insertArrayAt(array, index, arrayToInsert); } function insertArrayAt(array, index, arrayToInsert) { Array.prototype.splice.apply(array, [index, 0].concat(arrayToInsert)); return array; }
最后,这里有一个jsFiddle,你可以自己看一下: http://jsfiddle.net/luisperezphd/Wc8aS/
这就是你如何使用这些函数。
// if you want to insert specific values whether constants or variables: insertAt(arr, 1, "x", "y", "z"); // OR if you have an array: var arrToInsert = ["x", "y", "z"]; insertArrayAt(arr, 1, arrToInsert);
你想要的是本地数组对象上的
splice
函数。arr.splice(index, 0, item);
将在指定的索引处向arr
插入item
(先删除0
项,也就是说,它只是一个插入)。在这个例子中,我们将创建一个数组并在索引2处添加一个元素。
你可以通过这样做实现
Array.insert
方法。然后你可以像这样使用它。
如果你想一次向数组中插入多个元素,请看这个Stack Overflow的答案:https://stackoverflow.com/questions/1348178/a-better-way-to-splice-an-arrray-into-an-array-in-javascript
此外,这里还有一些函数来说明这两个例子。
最后,这里有一个jsFiddle,你可以自己看一下: http://jsfiddle.net/luisperezphd/Wc8aS/
这就是你如何使用这些函数。