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

马特·布罗迪

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

问题是,即使我确认它为空,它也仅返回“ 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'))

abney317

您需要返回函数调用。

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'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章