查找数组中的第一个正数

问题描述 投票:0回答:4

我想在控制台博客中显示数组中的第一个正数,但根据我的代码,它显示第二个正数,即 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`

javascript arrays for-in-loop for-of-loop
4个回答
0
投票

由于您使用的是

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`


0
投票

您可以使用带有索引的 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


0
投票

条件应该是

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;
  }
}


0
投票

你可以尝试这个简单的 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
      }
  }

© www.soinside.com 2019 - 2024. All rights reserved.