删除重复的数组元素
Delete duplicate array elements
我有以下遍历数组的循环:
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 = { 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/
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;
}
如果你不想使用任何框架,这就是代码:
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;
}
实际操作http://jsfiddle.net/jwAmA/
PD:使用数组[]代替对象{}
相关文章:
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 一些元素没有从数组中删除
- 从角度数组中删除元素
- 删除仅空格数组元素
- 正在从元素可能不同的数组中删除重复的元素
- 使用 V8 从密集数组中删除元素的最佳方法是什么
- 根据成员属性从数组中删除元素
- 如何从数组中删除元素
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- 删除数组元素并将它们添加回原来的位置
- AngularJS/JavaScript从Localstorage数组中删除特定元素
- 正在从ReactJS数组中删除Stateful元素
- 删除基于另一个数组的数组元素
- 如何从数组中删除元素
- 取消选择下拉项时从数组中删除元素
- 如果一个键匹配,如何删除数组元素
- 从AngularJS中的数组中删除元素时出错
- 通过与猫鼬中的不同数组匹配,从嵌入数组中删除元素