我想在控制台博客中显示数组中的第一个正数,但根据我的代码,它显示第二个正数,即 6。请提供我的问题的答案并解释我的代码如何工作。
let values = [-1, 5, -6, 6, -10, -5, 3, 4, -1, 8, 1, -10, 3];
for (const number of values) {
if (values[number] >= 0) {
console.log(number); break;
}
} //6
for (const key in values) {
if (values[key] >= 0) {
console.log(key);
}
} //6`enter code here`
由于您使用的是
of
它将返回元素值,因此您需要使用 number >= 0
而不是 values[number] >= 0
或者您可以使用
in
来完成此操作,在这种情况下,您需要使用 values[number] >= 0
而不是 number >= 0
let values = [-1, 5, -6, 6, -10, -5, 3, 4, -1, 8, 1, -10, 3];
for (const number of values) {
if (number >= 0) {
console.log(number); break;
}
} //5
for (const number in values) {
if (values[number] >= 0) {
console.log(values[number]); break;
}
} //5
console.log("----------------------------")
for (const key in values) {
if (values[key] >= 0) {
console.log(key);
}
} //6`enter code here`
您可以使用带有索引的 for 循环来迭代它
let values = [-1, 5, -6, 6, -10, -5, 3, 4, -1, 8, 1, -10, 3];
for (var i = 0; i<values.length; i++) {
if (values[i] >= 0) {
console.log(values[i]); break;
}
} //6
条件应该是
number >= 0
而不是 values[number] >= 0
演示:
let values = [-1, 5, -6, 6, -10, -5, 3, 4, -1, 8, 1, -10, 3];
for (const number of values) {
if (number >= 0) {
console.log(number);
break;
}
}
你可以尝试这个简单的 for 循环来找到第一个正数
let values = [-1, 5, -6, 6, -10, -5, 3, 4, -1, 8, 1, -10, 3];
for(var i=0;i<values.length;i++){
if(values[i]>=0){
console.log(values[i])
return
}
}