为什么 splice 与 for 循环一起使用,而不与 javascript 中的 map 一起使用?

Why is splice working with for loop, but not with map in javascript?

对于二维数组:

var fruits = [["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"]];

为什么 mapfor loop 有区别?

var newArrayMap = fruits.map(f => f.splice(1,2));
console.log(newArray);


[["Orange", "Apple"], ["Orange", "Apple"], ["Orange", "Apple"], ["Orange", "Apple"]]
for (var i = fruits.length - 1; i >= 0; i--){
        fruits[i].splice(1,2);
    }
console.log(fruits);

[["Banana", "Pear"], ["Banana", "Pear"], ["Banana", "Pear"], ["Banana", "Pear"]]

Array#splice returns数组的删除部分。

map 的第一个循环中,您获取 splice 的返回值。

for 的第二个循环中,您永远不会使用 splice 的返回值。 splice 改变数组,因此,你得到一个没有不需要部分的数组。