Если вам нужно иметь возможность вкладывать массивы, я бы изменил функцию .add()
, чтобы .concat()
дублировал массив в переменную, .push()
новое значение в новом массиве и вернул бы его.
function add(arr) {
var newArr = arr.concat(); // duplicate
newArr.push("e"); // push new value
return newArr; // return new (modified) Array
}
Вы также можете использовать concat()
и вернуть новый массив, который он создает.
var myArray = ["a", "b", "c", "d"];
function add(arr) {
return arr.concat("e");
}
var newArray = add(myArray);
console.log( newArray ); // ["a", "b", "c", "d", "e"]
console.log( myArray ); // ["a", "b", "c", "d"]
Таким образом, вместо двух методов .slice()
затем .push()
, вы выполняете это одним .concat()
.
Это также дает вам преимущество передачи другого массива вместо строки, поэтому:
return arr.concat(["e","f"]);
даст вам:
// ["a", "b", "c", "d", "e", "f"]
вместо:
// ["a", "b", "c", "d", ["e", "f"] ]