我有数组的电子邮件和ID,所以我想删除重复的元素谁有类似的ID的。
例子:
var newarray=[
{
Email:"test1@gmail.com",
ID:"A"
},
{
Email:"test2@gmail.com",
ID:"B"
},
{
Email:"test3@gmail.com",
ID:"A"
},
{
Email:"test4@gmail.com",
ID:"C"
},
{
Email:"test4@gmail.com",
ID:"C"
}
];
现在我需要删除具有ID的重复元素是常见的。从某种意义上说,我期待最终的阵列是
var FinalArray=[
{
Email:"test1@gmail.com",
ID:"A"
},
{
Email:"test2@gmail.com",
ID:"B"
},
{
Email:"test5@gmail.com",
ID:"C"
}
];
如果您可以使用Javascript库,如下划线或洛蒂什,我建议您在他们的库中查看_. uniq函数。来自洛达什:
_.uniq(array, [isSorted=false], [callback=_.identity], [thisArg])
在这里,你必须像下面这样使用,
var non_duplidated_data = _.uniq(newarray, 'ID');
您可以使用哈希表对其进行筛选。
js prettyprint-override">var newarray = [{ Email: "test1@gmail.com", ID: "A" }, { Email: "test2@gmail.com", ID: "B" }, { Email: "test3@gmail.com", ID: "A" }, { Email: "test4@gmail.com", ID: "C" }, { Email: "test5@gmail.com", ID: "C" }],
filtered = newarray.filter(function (a) {
if (!this[a.ID]) {
this[a.ID] = true;
return true;
}
}, Object.create(null));
console.log(filtered);
.as-console-wrapper { max-height: 100% !important; top: 0; }
使用rray.prototype.filter筛选出元素,并保持重复的检查使用temp
数组
var newarray = [{
Email: "test1@gmail.com",
ID: "A"
}, {
Email: "test2@gmail.com",
ID: "B"
}, {
Email: "test3@gmail.com",
ID: "A"
}, {
Email: "test4@gmail.com",
ID: "C"
}, {
Email: "test5@gmail.com",
ID: "C"
}];
// Array to keep track of duplicates
var dups = [];
var arr = newarray.filter(function(el) {
// If it is not a duplicate, return true
if (dups.indexOf(el.ID) == -1) {
dups.push(el.ID);
return true;
}
return false;
});
console.log(arr);
问题内容: 如今,在Swift中,您只需键入 以使数组唯一。(或根据需要订购)。 在此之前,它是怎么做的? 我可能有一个如下所示的数组: 或者,实际上,是数据的相似类型部分的任何序列。我要做的是确保每个相同元素中只有一个。例如,上面的数组将变为: 请注意,删除了2、6和15的重复项以确保每个相同元素中只有一个。Swift是否提供一种轻松实现此目的的方法,还是我必须自己做? 问题答案: 您可以自己滚
问题内容: 如何从JavaScript中的数组中删除空元素? 有没有简单的方法,还是我需要遍历它并手动将其删除? 问题答案: 编辑: 大约9年前,当时没有很多有用的内置方法时,就回答了这个问题。 现在,当然,我建议您使用该方法。 请记住,此方法将为您返回 一个新数组, 其中的元素可以通过您提供给它的回调函数的条件。 例如,如果要删除或值: 例如,这将取决于您认为什么是“空”,如果您正在处理字符串,
统计一个一维数组中的各个元素的个数,然后删除多出来的重复元素,并输出结果。 例如:[1,2,2,2,3,3,3,3,3]—>[1,2,3] 解决思路 将重复元素的列表中的重复元素进行统计,并将统计结果放在dictionary中,key为元素,value为该元素的个数 更新此步方法:上述步骤的功能,能够通过另外一个方法实现,即collections.Counter() 然后通过for获取key,得到
问题内容: 是什么使用之间的差值的delete算子阵列元件上,而不是使用该Array.splice方法? 例如: 如果我可以像删除对象一样删除数组元素,为什么还要使用splice方法呢? 问题答案: 将删除对象属性,但不会为数组重新索引或更新其长度。这使得它看起来好像是未定义的: 请注意,实际上并没有将其设置为value ,而是从数组中删除了该属性,使其 显得 未定义。Chrome开发人员工具通过
我需要做一些从arr1中删除“b”和“d”的操作。当然,我也需要从arr1中删除arr2中存在的元素。
问题内容: var arr = [1,2,3,5,6]; 删除第一个元素 我想删除数组的第一个元素,使其变为: 删除第二个元素 扩展这个问题,如果我想删除数组的第二个元素以使其变为: 问题答案: 要获得更灵活的解决方案,请使用该功能。它允许您根据索引值删除数组中的任何项目: