Para una matriz 2D:
var fruits = [["Banana", "Orange", "Apple", "Pear"], ["Banana", "Orange", "Apple", "Pear"], ["Banana", "Orange", "Apple", "Pear"], ["Banana", "Orange", "Apple", "Pear"]]; ¿Por qué la diferencia entre map y 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 devuelve las partes eliminadas de la matriz.
En el primer bucle con map , toma el valor devuelto de splice .
En el segundo ciclo con for , nunca usa el valor devuelto de splice . splice muta la matriz y, por eso, obtiene una matriz sin partes no deseadas.