根据数组中的位置重复字符 + 1

Repeat character depending on position in array + 1

我正在尝试获得这样的输出:

['h', 'ee', 'lll', 'llll', 'ooooo']

目前我的输出是:

[ 'h', 'ee', 'lll', 'lll', 'ooooo' ]

问题是第二次出现的“l”没有再重复一次,因为我在计算字母的索引然后加 1,它只计算第一次出现的“l” . 这是我到目前为止的代码,任何帮助都会很棒。

function mumble(string) {
  string.toLowerCase();
  let arrayPush = [];
  let array = string.split("");
  let count = 0;
  let char = [];
  array.map((letter) => {
    count = array.indexOf(letter);

    arrayPush.push(letter.repeat(count + 1));
  });

  return arrayPush;
}

console.log(mumble("hello")); 

不要使用indexOf,使用.map回调中的第二个参数来确定索引(以及从中重复字符串的次数)。

function mumble(string) {
  string.toLowerCase();
  let arrayPush = [];
  let array = string.split("");
  let count = 0;
  let char = [];
  array.map((letter, i) => {
    arrayPush.push(letter.repeat(i + 1));
  });

  return arrayPush;
}

console.log(mumble("hello")); 

无需将 .map 应用于字符串中的数组 split,您可以简单地遍历字符串,使用 .charAt() 字符串方法访问每个字符,并将其推送到 .repeat()乘积到结果数组。

工作片段:

console.log(mumble('hELlo'));

function mumble(string) {
const result = [];

for(let i=0; i<string.length; i++) {
    result.push(string.toLowerCase().charAt(i).repeat(i+1));
}

return result;
} // end function mumble;