Javascript Push / Shift один и тот же элемент несколько раз
у меня есть следующий код:
var foo = 'foo'
var bar = 'bar'
var arr = [1,2,3]
Я хочу добавить к foo
несколько раз в начале массива и bar
в конце массива. Количество добавленных элементов должно быть динамическим, а результирующий массив должен быть примерно таким:
['foo','foo',1,2,3,'bar',bar','bar']
есть ли лучший метод, чем использование цикла для каждого элемента?Я мог бы использовать lodash, если это необходимо.
4 ответов
Если лучше означает короче, Да есть способ:
var foo = 'foo';
var bar = 'bar'
var arr = [1,2,3]
var result = [
...Array(2).fill(foo),
...arr,
...Array(3).fill(bar)
];
попробуй такое forloop
метод. Array#unshift()
добавлено значение при запуске массива.push
добавить с конца массива
var foo = 'foo'
var bar = 'bar'
var arr = [1,2,3]
for(var i=0; i<(Math.random() * 5); i++){
arr.unshift(foo)
}
for(var i=0; i<(Math.random() * 5); i++){
arr.push(bar)
}
console.log(arr)
можно использовать unshift по и пуш как
function pushToBeginning(arr, str, count){
while(count--){
arr.unshift(str);
}
}
function pushToEnd(arr, str, count){
while(count--){
arr.push(str);
}
}
let arr = [1, 2, 3];
pushToBeginning(arr, 'Foo', 3);
pushToEnd(arr, 'Bar', 2);
console.log(arr);
или что-то вроде этого.
var foo = Array.from({length:2}, v => 'foo');
var bar = Array.from({length:3}, v => 'bar');
var arr = [1,2,3]
arr.push(...bar);
arr.unshift(...foo);
console.log(arr);