функция работает неправильно

211
11 декабря 2017, 17:15

var pol = [91, 5, 1, 3, 0, 9, 6, 8, 17]; 
var bit = []; 
 
function find(array) { 
  for (var i = 0; i < pol.length; i++) { 
    if (pol[i] > 10) { 
      //document.write(pol[i]+"</br>"); 
      bit.unshift(pol[i]); 
      document.write(bit + " "); 
    } 
 
    //document.write("net"); 
  } 
} 
 
var res = find(pol); 
//document.write(res); 
 
 
/*for (var i = 0; i < pol.length; i++) { 
    			if (pol[i]>5) { 
    				document.write(pol[i]+"</br>"); 
    			} 
     
    			else{ 
    				//document.write("b"); 
    			} 
    			 
    		}*/

Должно выдавать только 91 17. а вы дает почему-то 3 значения

Answer 1

Сейчас document.write(bit + " "); выполняется внутри цикла, т.е. при каждом нахождении числа. Функция находит два значения, но выводит три:
1) Сначала находится 91, в массиве [91] на экране 91;
2) Потом находится 17, в массиве [17, 91], на экране 91 17,91.

Так что функция находит два значения, но выводит три.

Вот так должно быть:

var pol = [91, 5, 1, 3, 0, 9, 6, 8, 17]; 
var bit = []; 
 
function find(array) { 
  for (var i = 0; i < pol.length; i++) { 
    if (pol[i] > 10) { 
      bit.unshift(pol[i]); 
    } 
  } 
  return bit; 
} 
 
var res = find(pol); 
document.write(res);

READ ALSO
Sort array based on priority of an other array? [требует правки]

Sort array based on priority of an other array? [требует правки]

Хочу отсортировать юзеров по алфавиту через sortUsers function, но в приоритете должен выступить массив "usersPrioritated" - то есть, результат должен быть...

261
Массив строк в массив обьектов JS

Массив строк в массив обьектов JS

Как из массива строк:

312
&ldquo;Синхронизировать&rdquo; chrome.storage.local.get

“Синхронизировать” chrome.storage.local.get

практикуюсь в создании расширения для google chrome есть код для popupjs:

204