// Create a function named 'containsBool'that accepts an
// array as a parameter.
// You can remove the comments and use the following array:
// myArray = ['Wednesday',23,false];
// Create a for / in loop inside the function that iterates
// through the items in the array.
// In the loop, check each array item for 'typeof' data.
// If the array contains Boolean data, return true.
// Likewise, if the array does not contain Boolean data, return false.
// Call the function and log the returned Boolean to the console.
这是我的代码,我不知道它在哪里不起作用:
var myArray = ['Wednesday', 23, true];
function containsBool(checkBool) {
for (g in checkBool) {
if (typeof checkBool[g] === 'boolean') {
return true;
} else {
return false;
}
}
}
console.log(containsBool(myArray));
答案 0 :(得分:0)
如果问题陈述对于实现来说不太具体(for循环或其他......),那么这可以做同样的工作:
['Wednesday', 23, true].some((x)=> typeof x === 'boolean')
答案 1 :(得分:-1)
这应该做的工作:
var someArray = ['Wednesday', 23, true];
function checkBoolean() {
for (i = 0; i < someArray.length; i++) {
if (typeof someArray[i] === "boolean") {
return true;
}
}
}
console.log(checkBoolean(someArray));
&#13;
在您的情况下,不应使用for...in
循环来遍历数组。 (阅读this为什么。)
您还应该查看else
声明。如果要检查的条目不是布尔值(发生两次),则该函数将返回false。 return
停止执行该函数,因此循环只执行一次。
答案 2 :(得分:-2)
您需要注意 return
结束for...in
循环。如果找到布尔值,可以提前结束它。如果循环从未找到布尔值,则它达到return false
。
var myArray = ['Wednesday', 23, true];
function containsBool(checkBool) {
for (g in checkBool) {
if (typeof checkBool[g] === 'boolean') {
return true;
}
}
return false;
}
console.log(containsBool(myArray));