0

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

如果我们有。可变 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"结果为真,它会返回empty string,因为它们正在排序

在这里找到我在 SO 上找到的下一个字母表 如果 chartCodeAt 不起作用

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

1 回答 1

0

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

于 2019-01-15T14:31:05.290 回答