使用图表代码递归以减少字符串



递归以减少字符串或数组的方法?示例案例:

如果有,变量abcdfgh4zi输出必须f4z

因为d之后它必须是e的,然后在h之后它必须是I它喜欢排序...

我正在尝试,但使用charCodeAt失败

function reduce(data) {
  let result = ""
  if (data.length <= 1) {
    return result
  } else if (data.charCodeAt(data[0])+1  !==  data.charCodeAt(data[1])) {
    result += data[0]
  }
  return result + reduce(data.slice(1))
}
console.log(reduce('abcdfgh4zi')); // f4z

结果与该数据相同,如果我<使用它,它将是空字符串

如果数据"lmnop"则结果为 true,它将返回 empty string 因为它们正在排序

并在这里找到我在SO上找到的下一个字母表,如果图表代码不起作用

var abc = (parseInt(data[0], 36) + 1) % 36;
 var nextAlphabet = ((!abc * 10 + abc).toString(36));

charCodeAt需要一个索引,你就给它一个字符。所以你在做data.charCodeAt("a") + 1 !== data.charCodeAt("b")

您还存储了第一个字符,因此您将存储"d"而不是"f"

function reduce(data) {
  let result = ""
  if (data.length <= 1) {
    return result
  } else if (data.charCodeAt(0)+1  !==  data.charCodeAt(1)) {
    result += data[1]
  }
  return result + reduce(data.slice(1))
}
console.log(reduce('abcdfgh4zi')); // f4z

最新更新