Я начал изучать код и JavaScript почти два месяца назад. И, я думаю, теперь я хорошо знаю основы, кроме массивов. У меня большая проблема с массивами, когда дело доходит до итерации и хранения ОДНОГО одиночного элемента в данной переменной.
Например:
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
условие if
true
сохраните это значение в переменной checker
. Но он сохраняет это значение 40
но цикл не останавливается, он продолжает и сохраняет оставшиеся элементы в массиве также, то есть 50
.
Пожалуйста, объясните мне концепцию и как остановить цикл и сохранить этот единственный элемент, когда условие истинно.
Некоторые аннотации
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));
Вы должны использовать оператор break, когда хотите вернуться из цикла for.
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;
}
break;
в вашем,if
остановить цикл.Array#sort
сортирует на месте, и ему нужно не логическое значение, а значение меньше нуля, нуля или больше нуля, в зависимости от требуемого порядка.