Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重置函数范围之外的数组_Javascript - Fatal编程技术网

Javascript 如何重置函数范围之外的数组

Javascript 如何重置函数范围之外的数组,javascript,Javascript,我不知道该如何命名,但这里有一个例子 我将一个数组传递给一个函数,我希望函数中所有更改的内容都应用于ref传递的数组(event the[])=> 但我希望更改后的内容应用于作为引用传递的数组 var myArray = [1,2,3,4]; function resetter(arr){ arr.length = 0; } resetter(myArray); // [] but is this clean ? 还有别的办法吗 如果两个变量具有相同的引用,则表示修改(更改属性)其中一个

我不知道该如何命名,但这里有一个例子

我将一个数组传递给一个函数,我希望函数中所有更改的内容都应用于ref传递的数组(event the[])=>

但我希望更改后的内容应用于作为引用传递的数组

var myArray = [1,2,3,4];
function resetter(arr){
   arr.length = 0;
}
resetter(myArray); // [] but is this clean ?

还有别的办法吗

如果两个变量具有相同的引用,则表示修改(更改属性)其中一个变量将更改另一个变量。这并不意味着赋予一个新值将改变另一个值

您可以使用
splice()

var myArray=[1,2,3,4];
功能复位器(arr){
阵列拼接(0,阵列长度)
}
重置器(myArray);

console.log(myArray)
这不是他们在OP中所做的吗?@MarkMeyer更新了答案。设置长度是截断项目的好方法,此方法受规范支持。oki感谢:)a只要不被视为黑客,我很高兴看到您可以阅读:
var myArray = [1,2,3,4];
function resetter(arr){
   arr.length = 0;
}
resetter(myArray); // [] but is this clean ?