我想创建一个完全覆盖原始数组的函数。
function putDatainthis(arr) {
//....some ways to get data
arr = [data,data,data...]; //this just reassigns arr = to new array original that was passed as reference hasn't been modified.
}
//所以现在我唯一能想到的就是:
function putDatainthis(arr) {
var data = [3,4,6,2,6,1];
arr.length=0;
data.forEach(function(e){
arr.push(e);
});
}
但是我想知道它是可以改进的还是有更多的本地方法
Array.prototype.splice()函数就是你要找的,这就是你的方法:
function putDataInThis(arr) {
var data = [3, 4, 6, 2, 6, 1];
arr.length = 0;
arr.splice(0, arr.length, data);
return arr;
}
alert(putDataInThis(["h", "g"]).join(","));
移植:
在下面的arr.splice(0, arr.length, data)
语句中,我们使用splice()
函数,参数如下:
-
0
为更换起始指标。 -
arr.length
为需要替换的元素个数。 -
data
是要放入数组中的新值列表。
数组。splice():插入、删除或替换数组元素以获取更多信息。
我认为你可以使用jquery合并。
function putDatainthis(arr) {
var data = [3,4,6,2,6,1];
$.merge(arr, data);
}
试试这个方法
function putDatainthis(arr) {
var data = [3,4,6,2,6,1];
var concat_array = data.concat(arr);
}