首页 > 解决方案 > 如何在不同字符之间的字符串中添加逗号?

问题描述

问题:

本练习的输入数据将是二维数组(数组的数组),其中每个子数组将有两个数值。

第一个是要重复的值,第二个是重复该值的次数。

创建一个名为的函数,该函数repeatNumbers将返回一个字符串,其中每个给定值重复适当的次数,如果有多组值,每组应该用逗号分隔。如果只有一组值,则应省略逗号。

到目前为止我的代码:

const repeatNumbers = function(arr) {
  let numbersRepeated = "";
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr[i][1]; j++) {
      numbersRepeated += arr[i][0];
    }
  }
  if (arr.length === 1) {
    return numbersRepeated;
  } else {
    return numbersRepeated;
  }
}

console.log(repeatNumbers([
  [1, 2],
  [2, 3]
]));

我得到了正确的输出,但显然到目前为止都在一个没有逗号的字符串中:运行上述输出:

11222

无论输入是什么或有多少子数组,如何才能在不同的数字之间插入逗号?

对于上面的例子:

11, 222

标签: javascriptstring

解决方案


只需插入代码以在外循环的开头添加逗号(即,当它循环每个集合时)。但是要检查输出中是否有任何先前的文本,否则它将在第一个条目之前添加一个逗号。

像这样:

const repeatNumbers = function(arr) {
  let numbersRepeated = "";
  for (let i = 0; i < arr.length; i++) {
    if (numbersRepeated != "") numbersRepeated += ",";
    
    for (let j = 0; j < arr[i][1]; j++) {
      numbersRepeated += arr[i][0];
    }
  }
  if (arr.length === 0) {
    return numbersRepeated;
  } else {
    return numbersRepeated;
  }
}

console.log(repeatNumbers([
  [1, 2],
  [2, 3]
]));


推荐阅读