.join不是函数

时间:2019-07-09 18:21:40

标签: javascript arrays

编码和javascript较新,我正在尝试代码战挑战。我设置了一个数组,以基于循环在我的newArray的某些索引处重复一个字母。例如,如果输入为:cwAt,则预期输出应为:C-Ww-Aaa-Tttt

在此上停留了几个小时(并且已经睡了)。我收到错误代码:

  

newArray.join不是函数

当我尝试运行此命令,但不确定如何解决此问题时。我觉得这很简单,我只需要了解为什么会这样。

function accum(s) {
  let mumble = s.split('');
  for (i = 0; i < mumble.length; i++) {
    let newArray = [mumble[i].toUpperCase(), ''];
    for (j = i; j > 0; j--) {
      newArray = newArray.push(mumble[i]);
    };
    // Merge the new array into a string and set it at the mumble index required
    mumble[i] = newArray.join('');
  };
  //Return new mumble with - as spaces between elements
  return mumble.join('-');
}
console.log(accum('cwAt'));

2 个答案:

答案 0 :(得分:3)

newArray = newArray.push(mumble[i]);更改为newArray.push(mumble[i]); push返回数组的新长度。

答案 1 :(得分:0)

您正在将数字存储在newArray中。尝试将4行替换为:

let newArray[i] = [mumble[i].toUpperCase(), ''];
and the 5 line :
for (j = 0; j < 0; j++) {
and the 6:
newArray[j] = newArray.push(mumble[i]);