В этой функции я на самом деле пытаюсь изменить массив, но я вхожу в консоль для теста.

Когда я пишу несколько условий в операторе if с AND, он становится недоступным.

arr = [5, 3, 8, 1]; filterRangeInPlace = (arr, a, b) ={amp}gt; { arr.forEach((item, index) ={amp}gt; { if (item {amp}lt;= a) { console.log(index); } }); } filterRangeInPlace(arr, 3, 8); //outputs index 1 and 3. //for cond (item {amp}gt;= b) if I get index 2 //why doesn't this work? arr = [5, 3, 8, 1]; filterRangeInPlace = (arr, a, b) ={amp}gt; { arr.forEach((item, index) ={amp}gt; { if (item {amp}lt;= a {amp}amp;{amp}amp; item {amp}gt;= b) { console.log(index); } }); } filterRangeInPlace(arr, 3, 8); 

Вы говорите: «оно также больше или равно 8» и тот факт, что вы ожидаете индекс 1, 2 и 3. Таким образом, вы, похоже, ищете все значения, меньшие или равные 3 и больше или равные 8.

Однако вы используете оператор {amp}amp;{amp}amp; в своем операторе if. Это равно, если оба условия выполняются, то …

Вы ищете || оператор, который говорит, сделать что-то, если либо условие а или условие б.