我想创建一个完全覆盖原始数组的函数。
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);
});
}
但我想知道它可以改进,还是有更多的原生方式。
答案 0 :(得分:3)
您正在寻找 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
是要放入数组中的新值列表。请阅读 Array.splice( ): insert, remove, or replace array elements 以获取更多信息。
答案 1 :(得分:1)
我认为你可以使用jquery merge。
function putDatainthis(arr) {
var data = [3,4,6,2,6,1];
$.merge(arr, data);
}
答案 2 :(得分:0)
试试这种方式。
startDwellClicker() {
Input, key, V L1, {space}.{esc}.{shift}.{enter}.{tab}.{Ctrl} ;Waits for Anykey to be pressed
Run, pssuspend "-r \\%A_ComputerName% dwellclicker.exe" ;Resume DwellClicker
pauseDwellClicker()
}
pauseDwellClicker() {
Loop {
Input, key, V L1 T4
if (ErrorLevel = "Timeout") ;Waits for 4 second Time Out
Break
}
Run, pssuspend "\\%A_ComputerName% dwellclicker.exe" ;Pause DwellClicker
startDwellClicker()
}