我在尝试使用正则表达式之前发布了有关此内容的信息,但是这次有所不同。
所以我有500个电话号码的清单。这是其中的一些示例:
{
8664665844
8885444636
8664604776
8776434327
8887441938
8882642882
8888097429
8668943258
8777711234
8669894327
}
它看起来有点不同,这是在我的mongoDB服务器上,所以它更像是具有唯一uid的对象数组...因此例如:
[
{
_id: kasjf234lkj109euf9023u4n,
field1: 8669894327,
}
]
类似的事情。
因此,基本上,我的Web应用程序使用的是要与基数进行比较的数字的csv文件。
我的第一个想法是使用for,while,for循环之类的东西,但是我不确定它会如何工作:
for(var i = 0; i < basenums.length; i++){
while ( i >= 0 ){
for(var j = 0; j < comparing.length; j++){
if comparing[j] == basenums.field1[i]{
push that number to a 'dupes' array
}else{
break or something?
}
}
}
}
...这种逻辑开始伤害我的头...
我知道有一个'includes()'方法,但是我没有真正使用它,在这种情况下,当我尝试使用它时,它给了我一切都是错误的,即使我用来比较的列表只是一个服务器上的“ basenums”列表的副本。
更“正确”的方式是什么?
我正在尝试将一个数组与一个数组进行比较。不是其特定数组中的值与其自己的数组中的值。
因此,与其将其标记为重复项,不如您应该重新阅读:
我有2个数字数组:[1、2、3、4、5、6]和[1、2、3、4、5、6]如何获取数组索引0并将其与数组比较b每个索引,然后取数组a的索引1并与数组b中的每个索引进行比较,依此类推,直到i> arrayA.length。
答案 0 :(得分:1)
不要尝试一步完成所有操作。将您的问题分解成小块:
步骤1:
var hashmap = {}
basenums.forEach(function(basenum) {
hashmap[basenum.field1] = true;
})
第2步:
var dupes = [];
comparing.forEach(function(comparingNum) {
if(hashmap[comparingNum]) {
dupes.push(comparingNum);
}
})
编辑:我不确定是否要将自己的骗子作为一组(唯一数组)。如果是这样,您可以使用备用步骤2:
var dupesMap = {};
comparing.forEach(function(comparingNum) {
if(hashmap[comparingNum]) {
dupesMap[comparingNum] = true;
}
})
var dupes = Object.keys(dupesMap);
答案 1 :(得分:0)
您可以将值推入数组并使用该数组创建一个新集合。集不会在其中保留冗余元素。试试这个;
let a = ["a","b","a","b","a","b","a","b","a","c"];
console.log(a);
let uniqueA = [...new Set(a)];
console.log(uniqueA);
顺便说一下,我在此页面上获得了一段代码的帮助:https://medium.com/front-end-hacking/getting-unique-values-in-javascript-arrays-17063080f836