编写一个名为“ find_value”的函数,该函数将整数列表作为参数并搜索值6。如果列表中有6,则该函数将返回一个布尔值,表示true,否则返回false。 (下面的代码)
function find_value(integers){
for (var i of integers){
if (i == 6 in integers){
return true;
}
else {
return false;
}
}
}
当输入类似[0,1,6]的列表时,我应该将期望值设为true,但最终却得到false。那我在做什么错了?
答案 0 :(得分:1)
i
是采用for ... of
statement的数组的实际值。
然后,您需要检查该值,最好使用Identity/strict equality operator ===
并返回true
,而不返回false
,因为它会终止迭代和函数。
在函数结束之前,将最后一个return false;
语句移出循环。
function find_value(integers) {
for (var i of integers) {
console.log(i); // just check the value
if (i === 6) {
return true;
}
}
return false;
}
console.log(find_value([0, 1, 6]));
答案 1 :(得分:0)
执行此操作(找不到时无需返回。)
function find_value(integers){
for (var i of integers){
if (i == 6){
return true;
}
}
}
console.log(find_value([0,1,6]));
或者您可以执行以下操作:
function find_value(integers){
var valueHolder = [];
for (var i of integers){
if (i == 6){
valueHolder.push(true);
}
else {
valueHolder.push(false);
}
}
return valueHolder;
}
console.log(find_value([0,1,6]));
答案 2 :(得分:0)
这是我对所有int数组和任何搜索到的数字的谦虚解决方案:
window.onload = function(e) {
var arr = [1, 2, 6];
get_six_from_array(arr,6);
function get_six_from_array(arr,num){
console.log(arr.includes(num));
if(arr.includes(num)){
return true;}
else{
return false;
}
}
};