ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在JavaScript中多次重复多个元素的数组

2019-09-10 12:46:35  阅读:155  来源: 互联网

标签:javascript arrays repeat


JavaScript中,如何以简洁的方式重复包含多个元素的数组?

在Ruby中,你可以做到

irb(main):001:0> ["a", "b", "c"] * 3
=> ["a", "b", "c", "a", "b", "c", "a", "b", "c"]

我查了一下lodash库,没找到任何直接适用的东西. Feature request: repeat arrays.是将其添加到lodash的功能请求,并给出了最好的解决方法

const arrayToRepeat = [1, 2, 3];
const numberOfRepeats = 3;
const repeatedArray = _.flatten(_.times(numberOfRepeats, _.constant(arrayToRepeat)));

问题Most efficient way to create a zero filled JavaScript array?Create an array with same element repeated multiple times侧重于多次重复单个元素,而我想重复一个具有多个元素的数组.

使用维护良好的库是可以接受的.

解决方法:

不需要任何库,你可以使用Array.from创建一个你想重复的数组数组,然后使用[] .concat和spread展平:

const makeRepeated = (arr, repeats) =>
  [].concat(...Array.from({ length: repeats }, () => arr));
  
console.log(makeRepeated([1, 2, 3], 2));

在较新的浏览器上,您可以使用Array.prototype.flat而不是[] .concat(…:

const makeRepeated = (arr, repeats) =>
  Array.from({ length: repeats }, () => arr).flat();
  
console.log(makeRepeated([1, 2, 3], 2));

标签:javascript,arrays,repeat
来源: https://codeday.me/bug/20190910/1798694.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有