Здравствуйте. Есть задача, пройтись по массиву и сортировать так, чтобы все 0 были в конце массива.
Написал такой код
'use strict'var arr = [1, 5, 0, 10, 0, 65, 0];function moveZeros(some) { let str; for(let i = 0; i < some.length; i++) { if(some[i] == 0) { str = some.splice([i], 1); some = some.concat(str); } } return some;}console.log(moveZeros(arr));
В данном примере все сортирует правильно, но если массив будет вида скажем [0, 0, 0, 1], то не будет правильно и на выходе получим [0, 1, 0, 0] вместо [1, 0, 0, 0]
Например имеем такую ситуацию, что var arr = [0, 0, 0, 1]
Цикл в первый раз пробежался по массиву, первый (нулевой) элемент равен 0, и код будет выполнятся, после чего получим массив уже вида [0, 0, 1, 0]. Вопрос, следующий этап цикла пробежит по массиву [0, 0, 1, 0] или по изначальному [0, 0, 0, 1] ? В чем моя ошибка?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Нарек
Здравствуйте. Есть задача, пройтись по массиву и сортировать так, чтобы все 0 были в конце массива.
Написал такой код
В данном примере все сортирует правильно, но если массив будет вида скажем [0, 0, 0, 1], то не будет правильно и на выходе получим [0, 1, 0, 0] вместо [1, 0, 0, 0]
Например имеем такую ситуацию, что var arr = [0, 0, 0, 1]
Цикл в первый раз пробежался по массиву, первый (нулевой) элемент равен 0, и код будет выполнятся, после чего получим массив уже вида [0, 0, 1, 0]. Вопрос, следующий этап цикла пробежит по массиву [0, 0, 1, 0] или по изначальному [0, 0, 0, 1] ? В чем моя ошибка?
Edited by НарекLink to comment
Share on other sites
27 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.