用splice方法添加元素

我正在尝试为我们的javascript拼接方法在数组中的每个大写字母后面添加一个“-”,但它不起作用。我不知道我在做什么错。这是下面的代码。

public class Generic<T> extends T{
}
landaming 回答:用splice方法添加元素

使用splice添加新元素时,将增加数组的length,循环将永远无法完成。如果您从数组的末尾到开头执行循环,则可以避免此问题。

function spinalCase(str) {
  let strArr = [];
  for (let i = 0; i < str.length; i++) {
    strArr.push(str[i]);
  }

  // Work the loop from the end to the beginning
  for (let i = strArr.length - 1; i >= 0 ; i--) {
    if (strArr[i] !== strArr[i].toLowerCase()) {
      strArr.splice(strArr.indexOf(strArr[i]),"-");
    }
  }
  console.log(strArr.join(''));
}

spinalCase('thisIsSpinalTap');

,

我知道您想使用拼接,但是这里有一些正则表达式解决方案;以防万一。

function spinalCase(str) {
 return str.replace(/[A-Z]/g,"-$&").toLowerCase();
}

console.log(spinalCase("thisIsSpinalTap"))
// this-is-spinal-tap

,

您在执行以下操作时更改了阵列:

strArr.splice(strArr.indexOf(strArr[i]),"-");

因此strArr.length对于循环for(let i = 0; i < strArr.length; i++)而言不是恒定的

本文链接:https://www.f2er.com/3041713.html

大家都在问