在二维数组中重复数字

时间:2018-08-23 23:12:06

标签: javascript arrays

给定二维数组时,我正在尝试编写一个函数。第一个是要重复的值,第二个将是重复该值的次数-每个子数组只有两个值

该函数应返回一个字符串,其中每个给定值均重复适当的次数,每组值均应以逗号分隔。如果只有一组值,则应省略逗号。

例如:

console.log(repeatNumbers([[1, 10]]))                   // => 1111111111
console.log(repeatNumbers([[1, 2], [2, 3]]))            // => 11, 222
console.log(repeatNumbers([[10, 4], [34, 6], [92, 2]])) // => 10101010, 343434343434, 9292

我该如何解决?

谢谢。

2 个答案:

答案 0 :(得分:7)

您只需将数字转换为字符串并使用string.repeat()。要将其应用于数组,可以先使用map(),然后再使用join()。问题尚不清楚应该是join(',')还是join(', ')。这些示例在逗号后显示一个空格,但是问题只是说用逗号隔开。

function repeatNumbers(arr){
    return arr.map(([n, count]) => n.toString().repeat(count)).join(',')
}
console.log(repeatNumbers([[1, 10]])) 
console.log(repeatNumbers([[10, 4], [34, 6], [92, 2]])) 

答案 1 :(得分:5)

map每个子数组都以其上的字符repeat命名,然后以逗号连接:

const repeatNumbers = arr => arr.map(
  ([char, repeats]) => String(char).repeat(repeats)
)
  .join(',');
console.log(repeatNumbers([[1, 10]])) // => 1111111111
console.log(repeatNumbers([[1, 2], [2, 3]])) // => 11, 222
console.log(repeatNumbers([[10, 4], [34, 6], [92, 2]])) // 10101010, 343434343434, 9292