/ / Excluir elementos da matriz duplicados - javascript

Excluir elementos da matriz duplicados - javascript

Eu tenho os seguintes loops que passa por uma matriz.

for(var j=0; j<10;j++) {
for(var k=0; k<10; k++) {

if(final[k]==ya[j]){
final[k].changeRankScore((ya[j].score + final[k].score)/2);

}else{

}
}
}

Existem dois array com 10 elementos. Estou verificando se existe um elemento duplicado que é encontrado no final. Se sim, mude a pontuação final do elemento duplicado e não o adicione ao final. Se não, podemos adicionar o elemento ao final.

Uma das maneiras possíveis que pensei em fazer isso foi marcar o elemento para adicionar ao array mais tarde.

Existe um jeito melhor de fazer isso?

EDITAR:

Final = { 1, 2, 3, 4, 5, 6, 7 } ;
ya = { 2 , 8, 7, 9, 10, 11, 12 } ;

Eu estou circulando pela matriz Ya. Se o elemento também for encontrado na matriz Final, aumente a pontuação desse elemento (já que é um objeto). Se não for encontrado, basta empurrar o elemento da matriz Ya para o array final.

Neste caso, os números 2 e 7 da matriz Ya sãoduplicatas. Consequentemente, a pontuação associada a esses números na matriz final deve ser aumentada, enquanto o restante dos elementos da matriz Ya deve ser enviado para final. A matriz deve então se tornar

Final = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Respostas:

0 para resposta № 1

Seus dados de amostra não são totalmente válidos. É isso que você quer dizer? http://jsfiddle.net/B74Gm/

var final = {
1: {score:0},
2: {score: 2},
3: {score: 0},
4: {score: 5},
5: {score: 1},
6: {score: 10},
7: {score: 10}
},

ya = {
2: {score: 2},
10: {score: 3},
4: {score: 0},
15: {score: 0},
6: {score: 4},
17: {score: 5}
};

for (var i in ya) {
final[i] = final[i] || {score: 0};
final[i].score += ya[i].score;
}

0 para resposta № 2

Se você não quiser usar nenhum framework, este é o código:

function mix(first_arr, second_arr) {
for(i = 0; i < second_arr.length; i++) {
if(first_arr.indexOf(second_arr[i]) == -1) {
first_arr.push(second_arr[i]);
}
}
return first_arr;
}

Veja em ação http://jsfiddle.net/jwAmA/

PD: use matrizes [] em vez de objetos {}