删除重复的数组元素

2023-12-30

我有以下遍历数组的循环。

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{

    }
  }
}

有两个包含 10 个元素的数组。我正在检查是否在 Final 中找到了重复的元素。如果是,则更改重复元素的final分数,并且不将其添加到final中。如果不是,我们可以将该元素添加到final中。

我想到的可能方法之一是标记要稍后添加到数组中的元素。

有更好的方法吗?

EDIT:

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

我正在循环遍历数组 Ya。如果该元素也在数组 Final 中找到,则增加该元素的分数(因为它是一个对象)。如果没有找到,则将数组 Ya 中的元素推送到数组 Final 中。

在本例中,数组 Ya 中的数字 2 和 7 是重复的。因此,与数组 Final 中的这些数字相关的分数应增加,而数组 Ya 的其余元素应推至 Final。该数组应该变成

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

您的示例数据不太有效。你是这个意思吗?http://jsfiddle.net/B74Gm/ 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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除重复的数组元素 的相关文章

随机推荐