在变量中存储一个单个数组元素

时间:2018-02-05 08:57:46

标签: javascript arrays for-loop

我开始学习编码&大约两个月前的JavaScript。而且我想我现在对除了数组之外的基础知识有很好的了解。当在给定变量中迭代并存储 ONE 单个元素时,我对数组有一个很大的问题。

例如:

function getIndexToIns(arr, num) {
  // Find my place in this sorted array.
  var sorted = arr.sort(function(a, b) {
    return a > b;
  });

  // console.log(sorted);

  var checker = 0;
  var finalResult = 0;

  for (var i = 0; i < sorted.length; i++) {
    checker = num;
    if (checker <= sorted[i]) {
      checker = sorted[i];
      console.log(checker);
      finalResult = arr.indexOf(checker);
    }
  }
    return finalResult;
}



console.log(getIndexToIns([10, 20, 30, 40, 50], 35));

在此示例中,我想循环遍历arr,只要if条件为true,就会在checker变量中存储该值。 但是它存储了值40但是循环没有停止,它继续并将其余元素存储在数组中,即50

请向我解释一下概念,以及如何在条件为真时停止循环并存储该单个元素。

2 个答案:

答案 0 :(得分:1)

一些注释

&#13;
&#13;
function getIndexToIns(arr, num) {
    var i;                             // declare at top

    arr.sort(function (a, b) {         // sort sorts in situ
        return a - b;                  // return delta, because sort expects
    });                                // numerical values

    for (i = 0; i < arr.length; i++) {
        if (arr[i] >= num) {
            break;                     // exit loop on find
        }
    }
    return i;                          // no need for indexOf, index is known
}

console.log(getIndexToIns([10, 20, 30, 40, 50], 35));
console.log(getIndexToIns([10, 20, 30, 40, 50], 100));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

当你想从for循环返回时,你应该使用break语句。

function getIndexToIns(arr, num) {
  // Find my place in this sorted array.
  var sorted = arr.sort(function(a, b) {
    return a > b;
  });

  // console.log(sorted);

  var checker = 0;
  var finalResult = 0;

  for (var i = 0; i < sorted.length; i++) {
    checker = num;
    if (checker <= sorted[i]) {
      checker = sorted[i];
      console.log(checker);
      finalResult = arr.indexOf(checker);
      break;
    }
  }
    return finalResult;
}