Javascript Push/Shift 相同元素多次

Javascript Push/Shift same element multiple times

我有以下代码:

var foo = 'foo'
var bar = 'bar'
var arr = [1,2,3]

我想在数组的开头添加到 foo 几次,在数组的结尾添加到 bar 。每个元素添加的次数应该是动态的,结果数组应该是这样的:

['foo','foo',1,2,3,'bar',bar','bar']

有没有比对每个元素使用循环更好的方法?如果需要我可以使用 lodash。

如果更好意味着更短,是的,有办法:

 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 and push喜欢

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);