如何“重复”数组 n 次

新手上路,请多包涵

在 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。

原文由 Oamar Kanji 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

你可以这样做:

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

会短一点。

原文由 Pointy 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Array.from() 创建一个长度为乘数的数组,其中每个项目都包含原始数组。然后使用 Array.flat() 转换为单个数组:

 const multiplyArray = (arr, length) =>
  Array.from({ length }, () => arr).flat()

const arr = [1,2,3]
const arr2 = multiplyArray(arr, 3)

console.log(arr2)

原文由 Ori Drori 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题