Arrays Javascript:数组移位和反向方法不能在同一行代码中调用吗?

Arrays Javascript:数组移位和反向方法不能在同一行代码中调用吗?,arrays,reverse,shift,Arrays,Reverse,Shift,javascript中的这一行: myarray.reverse().shift().reverse() 似乎与三条独立的线路的工作方式不同 myarray.reverse(); myarray.shift(); myarray.reverse(); 这是预期的吗?还是一只虫子? 我知道我可以用 myarray.pop(); 但这不是重点。我想了解预期的行为是什么 我制作了一个小html来演示这一点: <html> <body>

javascript中的这一行:

    myarray.reverse().shift().reverse()
似乎与三条独立的线路的工作方式不同

    myarray.reverse();
    myarray.shift();
    myarray.reverse();
这是预期的吗?还是一只虫子? 我知道我可以用

    myarray.pop();
但这不是重点。我想了解预期的行为是什么

我制作了一个小html来演示这一点:

<html> <body>
<button onclick="myFunction1()">Func1</button>
<button onclick="myFunction2()">Func2</button>
<p id="demo"></p>
<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits;

function myFunction1() {
    fruits.reverse();
    fruits.shift();
    fruits.reverse();
    document.getElementById("demo").innerHTML = fruits;
}

function myFunction2() {
    fruits.reverse().shift().reverse();
    document.getElementById("demo").innerHTML = fruits;
}

</script> 
</body> </html>

职能1
功能2

var水果=[“香蕉”、“橙子”、“苹果”、“芒果”]; document.getElementById(“demo”).innerHTML=fruits; 函数myFunction1(){ 水果。反向(); 水果。shift(); 水果。反向(); document.getElementById(“demo”).innerHTML=fruits; } 函数myFunction2(){ 水果。反转().shift().reverse(); document.getElementById(“demo”).innerHTML=fruits; }

我希望Func1和Func2的操作方式相同,但是Func2按钮没有按预期工作,尽管Func1工作。

您不能像JavaScript中那样链接方法调用。后面的调用将在前一个调用的返回值上调用,而不是在原始对象上调用

myArray.shift()
返回数组(以前)的第一个元素。它不返回(原始或修改的)数组(
reverse
在适当更新数组后返回数组)

因此
myArray.shift().reverse()
反转第一个元素

myArray.shift();myArray.reverse()首先删除第一个元素,然后反转数组的其余部分