为什么 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"]];
为什么 map
和 for 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
改变数组,因此,你得到一个没有不需要部分的数组。
对于二维数组:
var fruits = [["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"],
["Banana", "Orange", "Apple", "Pear"]];
为什么 map
和 for 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
改变数组,因此,你得到一个没有不需要部分的数组。