Показать сообщение отдельно
  #1 (permalink)  
Старый 08.10.2014, 20:52
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Как заменить все совпадения в массиве?
Здравствуйте, подскажите пожалуйста.
Есть код:
var arr2 = ['0', '1', '2', '3', '4', '5', '4', '7', '8', '9', '4', '11'];

и функция, которая в цикле пробегается по массиву и найдя все совпадения, заменяет их на no.
function getRepeatArray(array) {
	var newArr = [];

    for (var j = 0; j < array.length; ++ j) {

        for (var k = j + 1; k < array.length; ++ k) {
            if (array[j] === array[k]) {
                array[j] = 'no';
                array[k] = 'no';
            }
        }
    }	
}

getRepeatArray(arr2);

Проблема в том, что ПОЧЕМУ ТО, заменяются не все совпадения, к примеру, сейчас у меня в консоли выводится следующее:
["0", "1", "2", "3", "no", "5", "no", "7", "8", "9", "4", "11"]

Как видите последний символ 4 не заменился!
Почему так, не могу понять, если оберу одну четверку и оставлю две, то обе заменятся в независимости от того, какую именно четверку я уберу.
Может у кого-то есть свой вариант реализации подобного.
Спасибо.
Ответить с цитированием