Javascript 通过函数参数重置数组
我试图通过函数参数重置数组 这是我的密码:Javascript 通过函数参数重置数组,javascript,arrays,function,Javascript,Arrays,Function,我试图通过函数参数重置数组 这是我的密码: <script> fruitArray = ["apple", "banana", "orange", "pineapple"] function newFruit(myArray){ myArray=[]; } newFruit(fruitArray) alert(fruitArray[0])//Returns "apple" </script> 请帮我学习这个 谢谢。像这样做吧。将长度设置为0 myArray.le
<script>
fruitArray = ["apple", "banana", "orange", "pineapple"]
function newFruit(myArray){
myArray=[];
}
newFruit(fruitArray)
alert(fruitArray[0])//Returns "apple"
</script>
请帮我学习这个
谢谢。像这样做吧。将长度设置为0
myArray.length = 0
您不使用所做的更改设置数组,而是向
newFruit
函数发送一个数组,您可以更改它,但这与您的fruitArray
无关
因此,您所要做的就是从函数中返回更改后的数组,并使用从函数中返回的数组设置您的数组,如下所示:
furtarray=[“苹果”、“香蕉”、“橘子”、“菠萝”]
函数newFruit(myArray){
myArray=[];
返回myArray;
}
水果阵列=新水果(水果阵列);
警报(数组[0])//返回“undefined”,因为数组中没有[0]位。
警报(数组)//返回“”-空数组。
用户3378165
给出了正确答案:
<script>
fruitArray = ["apple", "banana", "orange", "pineapple"];
function newFruit(myArray){
myArray.length = 0;
}
newFruit(fruitArray);
alert(fruitArray[0]);//Returns "apple"
</script>
水果数组=[“苹果”、“香蕉”、“橘子”、“菠萝”];
函数newFruit(myArray){
myArray.length=0;
}
新果(果列);
警报(数组[0])//返回“苹果”
实际上,问题是按值主题,您可以了解更多信息:实际上,这意味着如果您更改参数本身(如您所做的),则不会影响输入参数的项目。但是,如果您更改参数(array.length=0)的内部结构,则会传播到备份中,javascript中没有通过引用传递的概念。可以通过引用将对象文字传递给函数
fruitObj = new Object;
fruitObj.fruits = ["apple", "banana", "orange", "pineapple"];
function newFruit(myObj) {
myObj.fruits = [];
}
newFruit(fruitObj);
alert(newFruit.fruits); // alerts an empty array
JavaScript是按值传递的,而不是按引用传递的。请看。数组是一个对象。@zerkms谢谢你纠正我。由于原型继承,javascript中的所有对象都是对象。但只有对象的直接实例,即;根据我的理解,其typeof(obj)=“object”
可以通过引用传递给函数的对象。如果我错了,请纠正我。不幸的是,你错了。“由于原型继承,javascript中的所有对象都是对象”——这毫无意义。“即,其typeof(obj)=“object”“--typeof(null)==“object”
而null
绝对不是对象的对象。你的新措辞也有误导性:“你可以通过引用传递对象文字”——这没有什么意义。对象文字只是一种语法符号,它仍然表示一个对象。它是对运行时传递的对象的引用,而不是对对象文本的引用。myArray.length=0;为我工作谢谢你的解释:)
fruitObj = new Object;
fruitObj.fruits = ["apple", "banana", "orange", "pineapple"];
function newFruit(myObj) {
myObj.fruits = [];
}
newFruit(fruitObj);
alert(newFruit.fruits); // alerts an empty array