Javascript 如何';重复';数组n次
在python中,您可以执行以下操作:Javascript 如何';重复';数组n次,javascript,arrays,Javascript,Arrays,在python中,您可以执行以下操作: arr = [1,2,3] * 3 print(arr) 输出: [1,2,3,1,2,3,1,2,3] 在java脚本中是否有一种简洁的方法来实现这一点?我能想到的最好的办法是: let arr2 = [...arr, ...arr, ...arr] 但如果我想这样做100次,那是不切实际的。在python中,我只是将其乘以100。您可以这样做: var repeated = [].concat(... new Array(100).fill([1
arr = [1,2,3] * 3
print(arr)
输出:
[1,2,3,1,2,3,1,2,3]
在java脚本中是否有一种简洁的方法来实现这一点?我能想到的最好的办法是:
let arr2 = [...arr, ...arr, ...arr]
但如果我想这样做100次,那是不切实际的。在python中,我只是将其乘以100。您可以这样做:
var repeated = [].concat(... new Array(100).fill([1, 2, 3]));
它创建一个给定长度的数组(此处为100)并用要重复的数组填充它([1,2,3]
)。然后将该数组作为参数列表扩展到[].concat()
哦,等等
var repeated = new Array(100).fill([1, 2, 3]).flat();
会短一点。试试这个:
function fillArray(value, len) {
if (len == 0) return [];
var a = [value];
while (a.length * 2 <= len) a = a.concat(a);
if (a.length < len) a = a.concat(a.slice(0, len - a.length));
return a;
}
函数填充数组(值,len){
如果(len==0)返回[];
var a=[值];
而(a.length*2您可以创建一个具有所需长度的数组并映射值
var数组=[1,2,3],
result=Array.from({length:3*Array.length},(_,i)=>Array[i%Array.length]);
console.log(result);
用于创建长度为乘数的数组,其中每个项都包含原始数组。然后使用转换为单个数组:
const multipyarray=(arr,length)=>
Array.from({length},()=>arr.flat()
常数arr=[1,2,3]
常数arr2=多天线(arr,3)
console.log(arr2)
简单明了:
var n=4;//次//放入100
var数组=[1,2,3];
var newarray=[];
而(n--){var newarray=newarray.concat(array);}
警报(newarray);
一种快速方法是加入数组,使用string.repeat()重复它,然后拆分它,最后使用ES6扩展
另一个答案可能更好。这只是一个简单的一行
让arr=[1,2,3];
让res=[…arr.join(“”)。repeat(3)。split(“”)。map(Number)];
console.log(res);
你可以使用stringrepeat
方法,使用join
和split
将数组转换为一个强数组和一个强数组?@RobinZigmond对于一个对象数组来说是有问题的。好的观点@Pointy,出于某种原因,我认为它是一个字符串数组,而OP显然是在谈论数字“排序”虽然适用于数字。与对象不同!)数组(100*3)。fill().map((v,i)=>[1,2,3][i%3])这不会生成所需的输出或满足“简明”的要求。console.log(var);
这可能应该是console.log(数组);
,仍然无法生成所需的result@LucaKiebel谢谢,修好了。现在它工作正常;-)通过ovwerwritingarray
,在你总是将数组的大小增加一倍之前。我喜欢这个,因为它是一个简单易读且有意义的单行程序。来自python,这让我感觉更自然。请注意。@Jeto是的,这是一个很好的观点,尽管我承认这让我非常不舒服,但我想知道它的效率有多高。@MaxWaterman如果你想对数组的每个元素做点什么,这本质上是一个线性时间运算方法在我看来,它将来会派上用场。依我看,这是最有效的方法,似乎相当于malloc后跟数组元素上的单个循环。其他解决方案似乎涉及数组元素上的多个循环。