我正在尝试编写一个函数来检查数组的第一个或最后一个位置是否包含特定的数字。
那里的所有console.log
示例都应该输出true
。它的打印方式,我不认为我应该在我的函数中写入console.log
。我不能让他们都给true
看。
function checkForNumber(arr, num) {
if (arr[0] === num) {
//console.log(true) removed
return true
} else if (arr.slice(-1)[0] === num) {
//console.log(true) removed
return true
} else
return false;
}
console.log(checkForNumber([4, 2, 5, 3], 4) === true);
console.log(checkForNumber([4, 2, 5, 3], 3) === true);
console.log(checkForNumber([4, 2, 5, 3], 2) === false);
console.log(checkForNumber([4, 2, 5, 3], 13) === false);
发布于 2018-08-31 05:29:20
function checkForNumber(arr, num) {
return arr[0] === num || arr[arr.length - 1] === num;
}
console.log(checkForNumber([4, 2, 5, 3], 4) === true);
console.log(checkForNumber([4, 2, 5, 3], 3) === true);
console.log(checkForNumber([4, 2, 5, 3], 2) === false);
console.log(checkForNumber([4, 2, 5, 3], 13) === false);
if (condition) return true
和类似的是反模式。如果函数是谓词(即返回布尔值),则只返回逻辑运算的结果。
发布于 2018-08-31 05:23:21
这是我在评论中建议的完全实现的解决方案。
function checkForNumber(arr, num) {
if (arr[0] === num || arr[arr.length - 1] === num) {
return true
} else
return false;
}
console.log(checkForNumber([4, 2, 5, 3], 4));
console.log(checkForNumber([4, 2, 5, 3], 3));
console.log(checkForNumber([4, 2, 5, 3], 2));
console.log(checkForNumber([4, 2, 5, 3], 13));
console.log(checkForNumber([4, 2, 5, 4], 4));
发布于 2018-08-31 05:28:24
我觉得这就足够了,对吧?干杯!
function checkForNumber(arr, num)
{
// for OR
return ((arr[0] === num) || (arr[arr.length-1] === num));
// for AND
// return ((arr[0] === num) && (arr[arr.length-1] === num));
}
console.log(checkForNumber([4, 2, 5, 3], 4) === true);
console.log(checkForNumber([3, 2, 5, 4], 3) === true);
console.log(checkForNumber([0, 4, 4, 8], 2) === false);
console.log(checkForNumber([4, 2, 5, 3], 13) === false);
https://stackoverflow.com/questions/52105459
复制相似问题