我遇到了这两个挑战:挑战13 & 挑战15 。任何人都可以帮助我吗?
挑战13
您将获得一个名为
checkObj
的对象。使用for...
in循环,确定对象是否包含属性foundNum
。如果存在,请将Found!
记录到控制台,否则将Does not exist!
记录到控制台。
let checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
for (let prop in checkObj) {
if(prop === 'foundNum') {
console.log("Found!")
} else {
console.log('Does not exist!')
}
}
我对这次挑战的结果打印出“不存在!”对于每个财产。如果没有,它应该只打印一次。
挑战14 < - 我解决了。 挑战15 需要这一挑战。
您将获得另一个名为objToArray的空数组。使用for ... in循环,使用checkObj对象中的所有数字填充数组,如果它们大于或等于2。
let objToArray = [];
for(let prop in checkObj){
if(checkObj[prop] >= 2){
objToArray.push(checkObj[prop]);
}
}
console.log(objToArray);
挑战15
使用for循环,遍历
objToArray
以确定是否有任何数字可被6整除。如果有,请将true
记录到控制台。如果没有,请将false
记录到控制台。
for(let i = 0; i<objToArray.length; i++){
if(objToArray[i]%6===0){
console.log(true);
} else{
console.log(false);
}
}
与challenge13相同,我的代码保持打印错误,但如果没有任何可被6整除的数字,则只打印一次。
答案 0 :(得分:0)
不是在循环中打印,而是保留一个布尔变量并在找到属性时切换它,最后根据循环后的布尔值显示消息。
let checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
let found = false;
for (let prop in checkObj) {
// compare with the property name
if(prop === 'foundNum') {
// if found then update the boolean value
found = true;
// you can now break the for loop since property already found
break;
}
}
// based on the boolean value show your message
console.log( found ? 'Found' : 'Not found');
let checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
let found = false;
for (let prop in checkObj) {
// compare with the property name
if (prop === 'foundNum') {
// if found then update the boolean value
found = true;
// you can now break the for loop since property already found
break;
}
}
// based on the boolean value show your message
console.log(found ? 'Found' : 'Not found');
&#13;
同样的逻辑也需要用于最后的挑战。
let possible = false;
for(let i = 0; i<objToArray.length; i++){
// check number is divisible
if(objToArray[i] % 6 === 0){
// if divisible then updaet the boolean value
possible = true;
// break the for loop
break;
}
}
console.log(possible);