我开始学习编码&大约两个月前的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
。
请向我解释一下概念,以及如何在条件为真时停止循环并存储该单个元素。
答案 0 :(得分:1)
一些注释
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;
答案 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;
}