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)
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);
我有以下代码:
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)
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);