重复的数字

时间:2017-04-02 05:26:53

标签: javascript arrays netbeans

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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]。

最后一个 reduce 使嵌套数组变平。

答案 2 :(得分:0)

您可以使用Array.prototype.entries()for..of循环,展开元素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);