Задача с сортировкой массива JavaScript

286
26 июня 2018, 10:50

Задача: Найти в массиве нули, удалить с данного индекса и добавить в конец массива.

var moveZeros = function (arr) {
  for(var i = 0; i < arr.length; i++ )
    {
     if(arr[i] == 0 )
      {
             arr.splice(i, 1);
             arr.push(0);
      }
    }
    return arr;
}

Данные входные значения:

Expected: '[1,2,1,1,3,1,0,0,0,0]' ответ правильный в одном случае, а в других вариантах появляться ноль в массиве. Подскажите как так получается:

Expected: '[9,9,1,2,1,1,3,1,9,9,0,0,0,0,0,0,0,0,0,0]', instead got: '[9,0,9,1,2,1,1,3,1,9,0,0,9,0,0,0,0,0,0,0]'

Expected: '["a","b","c","d",1,1,3,1,9,9,0,0,0,0,0,0,0,0,0,0]', instead got: '["a",0,"b","c","d",1,1,3,1,9,0,0,9,0,0,0,0,0,0,0]'

Answer 1

Вы пропускаете ноль, если он оказывается в месте с индексом i в результате сдвига. Пример - два ноля подряд в середине массива.

READ ALSO
Cloud functions in Firebase for Android. В какой IDE писать функции?

Cloud functions in Firebase for Android. В какой IDE писать функции?

Дилетантский вопросВпервые сталкиваюсь с JavaScript

274
Как округлять в большую сторону до половины или до целого числа JS

Как округлять в большую сторону до половины или до целого числа JS

Есть код, не важно какой, суть в чем: при делении получается число равное площади используемой для изделия из плит, которые продаются либо...

254