查找数组中的第一个正数

Finding the first positive number in the array

提问人:Arin Avanusyan 提问时间:10/17/2022 最后编辑:clonedArin Avanusyan 更新时间:2/23/2023 访问量:380

问:

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

评论

0赞 flyingfox 10/17/2022
需要使用代替number>0values[number]>0
0赞 n-- 10/17/2022
保持简单:console.log(values.find(n => n > 0))

答:

0赞 flyingfox 10/17/2022 #1

由于您正在使用它,它将返回元素值,因此您需要使用 而不是ofnumber >= 0values[number] >= 0

或者你可以用它来做,在这种情况下,你需要使用而不是invalues[number] >= 0number >= 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赞 Syed Arsalan Hussain 10/17/2022 #2

您可以使用带有索引的 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赞 Rohìt Jíndal 10/18/2022 #3

条件应为 而不是number >= 0values[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赞 MenTalist 2/23/2023 #4

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