Arrays Javascript:数组移位和反向方法不能在同一行代码中调用吗?
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>
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()代码>首先删除第一个元素,然后反转数组的其余部分