繁体   English   中英

重复的数字

[英]Repeated Numbers

我删除了这个,因为我不相信这是一个很好的问题

如果你真的想要接受字符串,我会取两个字符串并将它们中的每一个转换成数组,如你所写的那样[2,3,4]和[1,4,5]然后将它们连接起来。 然后使用简单的数据结构算法按顺序排列它们。 因此,例如,遍历数组中的每个项目,如果它是最小的数字,则将其移动到0位置。 然后转到下一个位置,并尝试将除第一个位置之外的数组中的最小数字移动到第二个位置,等等。

我有一个想法,我认为应该有重复功能。 例如,它可以重复'a'3次。就像a => [a, a, a]

 function repeat(a, times) {
     if (times === 0) return [];
     return [a].concat(repeat(a, times - 1));
 }

然后我用它来完成这个问题。

 function repeatAndConcat(times, arr) {
   return arr.map(function(item, index) {
     return repeat(item, times[index]);
   }).reduce(function(a, b) {
     return a.concat(b);
   });
 }

repeatConcat([2,3,4],[1,4,5])返回[1,1,4,4,4,5,5,5,5]。

最后一个减少扁平嵌套数组。

您可以使用Array.prototype.entries()for..of循环,spread元素, Array.prototype.fill()来创建数据,其中.length由第一个数组的元素值设置,在第二个数组处填充值指数

 let [len, arr, res] = [[2,3,4], [1,4,5], []]; for (let [key, prop] of arr.entries()) res.push(...Array(len[key]).fill(prop)); console.log(res); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM