javascript - JavaScript 中的 Return 语句未返回正确的值

标签 javascript string

我设置了一个函数来查找字符串中是否存在 100,如果存在则将其删除。它将运行直到所有 100 都被删除,然后如果数组现在为空则返回“yes”,如果不为空则返回“no”。

问题是它只返回“no”,即使我已经确认它是空的。

const hun = (input) => {
  const splitArr = input.split('');
  let empty = 'no';

  if (splitArr.length === 0) {
    console.log('it is equal to 0')
    empty = 'yes';
    return empty;
  };

  for (i = 0; i < splitArr.length; i++) {
    let num = splitArr[i] + splitArr[i + 1] + splitArr[i + 2];
    if (num === '100') {
      splitArr.splice(i, 3);
      hun(splitArr.join(''))
    }
  }
  return empty;
}

console.log(hun('101000'))
console.log(hun('1010001'))

最佳答案

您需要返回函数调用。

return hun(splitArr.join(''));

const hun = input => {
  const splitArr = input.split('');

  if (splitArr.length === 0) {
    console.log('it is equal to 0');
    return 'yes';
  }

  for (let i = 0; i < splitArr.length; i++) {
    const num = splitArr[i] + splitArr[i + 1] + splitArr[i + 2];
    if (num === '100') {
      splitArr.splice(i, 3);
      return hun(splitArr.join(''));
    }
  }
  return 'no';
}

console.log(hun('101000'))
console.log(hun('1010001'))

关于javascript - JavaScript 中的 Return 语句未返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59219176/

相关文章:

java - 无法识别 Java 字符串中的代理字符

php - 制作N个字符的字符串

java - 我如何让它返回一个 double 而不转换为字符串

java - 无法从 String 转换为 float

javascript - getJSON 无法获取子值

javascript - 浏览器中的动画透明图像噪声 - Limbo Effect

javascript "document.getElementById undefined"

javascript - 将 cookie 实现到简单的秒表中

javascript - 如何在 Node.js 中构建集成测试和微服务架构

regex - 基于匹配其他列的部分字符串在数据框中创建新列