给定二维数组时,我正在尝试编写一个函数。第一个是要重复的值,第二个将是重复该值的次数-每个子数组只有两个值
该函数应返回一个字符串,其中每个给定值均重复适当的次数,每组值均应以逗号分隔。如果只有一组值,则应省略逗号。
例如:
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
我该如何解决?
谢谢。
答案 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