我设置了一个函数来查找字符串中是否存在 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/