Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

А как избавиться отповторяющихся элементов в массиве?

Returno Мудрец (12168), на голосовании 9 месяцев назад
Сейчас в массиве ArrayFind есть повторяющие элементы, а как сделать, что бы повторяющиеся элементы не записывались в массив

https://jsfiddle.net/5bnLs6u8/



for (let i = 0; i < ArrayNumber.length-1; i++) {

for (let k = 0; k < ArrayNumber[i].length; k++){

if(ArrayNumber[i][k] != -1){

if( ArrayNumber[i][k] === ArrayNumber[i+1][k]){

ArrayFind.push(ArrayNumber[i][k] + "-" + ArrayNumber[i+1][k]);

}

if(ArrayNumber[i][k] === ArrayNumber[i][k+1] ){

ArrayFind.push(ArrayNumber[i][k+1] + "-" + ArrayNumber[i][k]);

}
}
}
}

for (let i = ArrayNumber.length-1; i > ArrayNumber.length-2; i--) {

for (let k = ArrayNumber[i].length-1; k > 0; k--){

if(ArrayNumber[i][k] != -1){

if(ArrayNumber[i][k-1] === ArrayNumber[i][k] ){

ArrayFind.push(ArrayNumber[i][k] + "-" + ArrayNumber[i][k] );
ArrayFind.push(ArrayNumber[i][k-1] + "-" + ArrayNumber[i][k] );
}
}
}
}

alert( ArrayFind);
Голосование за лучший ответ
Semen Kapacuk Гуру (3750) 10 месяцев назад
Используй new Set()
А так же советую пользоваться кнопкой "Блок кода", если вставляешь сюда код, это непотребство нечитаемо совсем.
ReturnoМудрец (12168) 10 месяцев назад
z я вставил код в редакторе, ссылку
ReturnoМудрец (12168) 10 месяцев назад
b и как его встравить?
Semen Kapacuk Гуру (3750) Returno, ну ты не можешь погуглить, как добавить в сет данные? через метод .add добавляешь данные, на выходе получишь набор уникальных значений, который можно превратить в массив
Celtic Hammer Мудрец (16453) 10 месяцев назад
Ну так есть такое понятие как "множество". В программировании оно, как и многое другое, прямиком из дискретной математики. В языках программирования, в том числе и JS, обычно реализуется через структуру данных Set. Главное не запутаться, в JS есть set с маленькой буквы, который совсем другая команда совсем для других целей
ReturnoМудрец (12168) 10 месяцев назад
не работает https://jsfiddle.net/5bnLs6u8/1/
Returno, Вполне себе работает. Просто для того, чтобы посмотреть содержимое множества, замени alert(set); на, например:
 let x = ''; 
for (let v of set) { x += ' ' + v; }
alert(x); 
А лучше - безо всяких ухищрений:
 console.log(set); 
и смотри значение в консоли браузера.
Похожие вопросы