我试图仅出于实验目的在参数上实现不同的数组方法。我能够使用slice和join方法。但我不知道如何使用unshift方法在​​参数列表中添加额外的元素。出乎意料的结果。它给出的值为3,我不知道它是从哪里来的。如何完成?

<html>
  <body>
    <script>
      function init(){

        console.log(arguments);
        console.log(arguments.length);
        console.log(Array.prototype.join.call(arguments,'__'));
        console.log(Array.prototype.unshift.call(arguments));
      }
      init(1,2,3);
    </script>
  </body>
</html>


结果:
Arguments { 0: 1, 1: 2, 2: 3, 2 more… }
3
"1__2__3"
3

最佳答案

MDN:



它返回3,因为调用它时arguments.length为3,并且没有将任何新元素传递给该方法。

您应该可以致电:

console.log(Array.prototype.unshift.call(arguments, "a", "b", "c")));
console.log(arguments);

并查看:
6
Arguments { 0: "a", 1: "b", 2: "c", 3: 1, 4: 2, 5: 3, 2 more… }

关于javascript - Array.prototype.unshift.call(arguments,...)怎么做?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25330131/

10-13 03:53