通过函数参数重置一个数组

这个问题在这里已经有了答案:

  • 如何在JavaScript中清空数组? 18个答案

  • user3378165给出了正确的答案:

    <script>
    fruitArray = ["apple", "banana", "orange", "pineapple"];
    function newFruit(myArray){
      myArray.length = 0;
    }
    newFruit(fruitArray);
    alert(fruitArray[0]);//Returns "apple"
    </script>
    

    实际上,问题在于by value主题,您可以在这里了解更多信息: 实际上,这意味着如果您自己更改参数(如您所做的那样),那么这不会影响馈送到参数中的项目。 但是如果你改变了参数的内部参数(array.length = 0),那会传播回去


    这样做。 将长度设置为0

    myArray.length = 0
    

    你不需要为你的数组设置你所做的改变,你发送给newFruit函数一个数组,你改变了它,但是这与你的 fruitArray没有任何关系。

    所以你所要做的就是从函数return已更改的数组,并set你的fruitArray函数returned的数组,如下所示:

        fruitArray = ["apple", "banana", "orange", "pineapple"]
        function newFruit(myArray){
           myArray = [];
           return myArray;
        }
        fruitArray = newFruit(fruitArray);
        alert(fruitArray[0]);//Returns "undefined" because there is no a [0] place in the fruitArray.
        alert(fruitArray);//Returns ""-empty array.
    链接地址: http://www.djcxy.com/p/23957.html

    上一篇: Reset an array through function parameter

    下一篇: On change delete everything in array and add new values in it