我正在尝试使用 javascript 删除数组数组中的重复项,其中重复项将始终位于长度为 1 的数组中。一个示例是
[ [23, 46, 43, 44]
[46]
[52, 51]
[53]
[44]
[55, 66] ]
在这种情况下,我想删除数组 [46] 和 [44],但保留 [53]。这些单项重复数组的数量是可变的。想法?
编辑:这是我最终所做的工作,其中 stacks_array 是数组的数组。
function stacks_sanatizer(stacks_array){
var output_array = [],
used_cards =[];
used_cards[70] = undefined;
for (each_stak in stacks_array){
if((stacks_array[each_stak].length > 1) && (stacks_array[each_stak] !== "")){
for (i=0; i<stacks_array[each_stak].length;i++){
var card_number = stacks_array[each_stak][i].attrs.fill.substr(27).replace('.jpg)','');
used_cards[card_number - 1] = true;
}
}
}
for (each_stak in stacks_array){
if(stacks_array[each_stak] !== ""){
if(stacks_array[each_stak].length === 1){
card_number = stacks_array[each_stak][0].attrs.fill.substr(27).replace('.jpg)','');
if(used_cards[card_number - 1] !== true){
output_array.push(stacks_array[each_stak]);
used_cards[card_number - 1] = true;
}
}
else{
output_array.push(stacks_array[each_stak]);
}
}
}
//delete doubles
for(each_pile in output_array){
output_array[each_pile] = output_array[each_pile].filter(function(elem, pos) {
return output_array[each_pile].indexOf(elem) == pos;
})
}
return output_array;
}
最佳答案
完成这个的伪代码:
- 遍历外部数组:对于每个内部数组,将数字散列到散列表中。
- 当你将它散列到表中时,如果它存在一个条目,检查该数组的长度是否 为 1,如果是,则移除数组。
- 否则,将条目输入哈希表并保留该内部数组。
希望这有帮助:)
关于javascript - 从数组数组中删除重复条目(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24706509/