【问题标题】:method in console.log changes arrayconsole.log 中的方法更改数组
【发布时间】:2018-09-20 06:12:40
【问题描述】:

我很难理解这段代码的行为:

var myArray=new Array;
myArray = ["1","2","3","4"];
console.log(myArray);
console.log(myArray.pop());
console.log(myArray);

记录结果是:

'Array [ "1", "2", "3", "4" ]'
'4'
'Array [ "1", "2", "3" ]'

看起来console.log((myArray.pop())) 语句不仅显示了值,而且实际上正在执行“弹出”操作。

这是正常行为吗?

【问题讨论】:

  • 您正在执行更改数组的pop - 为什么您对这种行为感到惊讶?

标签: arrays console.log


【解决方案1】:

是的,这是正常行为。 pop 删除数组中的最后一个元素并返回其值。如果您只寻找最后一个元素而不删除它,您可以这样做:

console.log(myArray[myArray.length - 1]);

【讨论】:

    【解决方案2】:

    方法arr.pop() 从数组中删除最后一个元素并将该值返回给调用者。它返回从数组中移除的元素; undefined 如果数组为空。所以这是期望的行为。

    【讨论】:

      【解决方案3】:

      是的!它表现正常。根据 MDN 的文档Arrays POP。您可以看到它清楚地表明它将改变数组的长度。除此之外,pop 函数返回删除的元素,这就是为什么console.log(myArray.pop()) 打印4pop 方法删除最后一个元素返回该元素

      【讨论】:

        【解决方案4】:

        它运行良好。 在数组中,有插入和删除两种方法。 其中一个是 push(),另一个是 pop()。 通常, push() 从开头插入一个元素,而 pop() 从最后一个删除元素。 在你的情况下,

        console.log(myArray.pop()); 
        //It is printing out the popped element which is 4. right? so, it's correct.
        // It is showing you which item is popped or removed from myArray.
        Then,
        //your last line of console.log is displaying the array after removing 4.
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-06
          • 1970-01-01
          • 2018-03-13
          • 1970-01-01
          • 1970-01-01
          • 2022-11-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多