Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JavaScript中的对象数组中获取重复值?_Javascript_Arrays_Filter - Fatal编程技术网

如何从JavaScript中的对象数组中获取重复值?

如何从JavaScript中的对象数组中获取重复值?,javascript,arrays,filter,Javascript,Arrays,Filter,我的问题是我需要过滤一组数据 我的数据带有 var arrayWithDuplicates = [ {"licenseNum": "6", "state":"NV"}, {"licenseNum": "6", "state":"NV"}, {"licenseNum": "6", "state":"NV"}, {"licenseNum": "6", "state":"CA"}, {"licenseNum": "6", "state":"CA"}, {

我的问题是我需要过滤一组数据

我的数据带有

var arrayWithDuplicates = [
    {"licenseNum": "6", "state":"NV"},
    {"licenseNum": "6", "state":"NV"},
    {"licenseNum": "6", "state":"NV"},
    {"licenseNum": "6", "state":"CA"},
    {"licenseNum": "6", "state":"CA"},
    {"licenseNum": "6", "state":"OR"},
    {"licenseNum": "6", "state":"OR"},
    {"licenseNum": "6", "state":"OR"},
    {"licenseNum": "20", "state":"NV"},
    {"licenseNum": "10", "state":"CA"},
    {"licenseNum": "10", "state":"NV"},
    {"licenseNum": "10", "state":"OR"},
    {"licenseNum": "10", "state":"CA"}
];
新数据应该是

newdata = [6, 6, 6, 20, 10, 10, 10];
我试着去做

for (i = 0; i < arrayWithDuplicates .length; i++) {
                if ((arrayWithDuplicates[i].licenseNum) === -1)) {
                    newdata .push({
                        licenseNum: arrayWithDuplicates[i].licenseNum,
                        state: arrayWithDuplicates[i].state
                    });
                }
            };

我已经看到了很多很好的例子,但它仍然不能解决我的问题。非常感谢。

获取独特的条目并筛选出您需要的内容。在下面内联查找注释以查看方法

var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
json=arrayWithDuplicates.map(x=>json.stringify(x))//将每个数组条目映射到stringified json中,因此我可以在下面得到唯一的条目
var result=json.filter(函数(项目,位置){
return json.indexOf(item)==pos;//给出唯一的条目
}).map(x=>+JSON.parse(x).licenseNum)//解析回JSON并给出licenseNum
console.log(结果)

//[6,6,6,20,10,10]
获取唯一的条目并筛选出您需要的内容。在下面内联查找注释以查看方法

var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
json=arrayWithDuplicates.map(x=>json.stringify(x))//将每个数组条目映射到stringified json中,因此我可以在下面得到唯一的条目
var result=json.filter(函数(项目,位置){
return json.indexOf(item)==pos;//给出唯一的条目
}).map(x=>+JSON.parse(x).licenseNum)//解析回JSON并给出licenseNum
console.log(结果)
//[6,6,6,20,10,10]
var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
var newdata=[];
var seens=[];
对于(变量i=0;i
var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{LicenseMum”:“6”,状态:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
var newdata=[];
var seens=[];
对于(变量i=0;iES6 JS:

var-arr=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”}
];
var newarr=arr。
过滤器((x,i)=>arr.some((y,j)=>{
返回y.licenseNum==x.licenseNum&&i!=j
}))
.map(x=>x.licenseNum)
console.log(newarr)
ES6 JS:

var-arr=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”}
];
var newarr=arr。
过滤器((x,i)=>arr.some((y,j)=>{
返回y.licenseNum==x.licenseNum&&i!=j
}))
.map(x=>x.licenseNum)

console.log(newarr)
在一个独特的函数中由

var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
json=arrayWithDuplicates.map(x=>json.stringify(x))
让结果=[];
forEach(函数(项目、位置){
if(json.indexOf(item)==pos){
result.push(+JSON.parse(item.licenseNum)
}
})

console.log(result)
在一个独特的函数中由

var arrayWithDuplicates=[
{“licenseNum”:“6”,注明:“NV”},
{“licenseNum”:“6”,注明:“CA”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“6”,注明:“或”},
{“licenseNum”:“20”,注明:“NV”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“CA”},
{“licenseNum”:“10”,注明:“或”},
{“licenseNum”:“10”,注明:“CA”}
];
json=arrayWithDuplicates.map(x=>json.stringify(x))
让结果=[];
forEach(函数(项目、位置){
if(json.indexOf(item)==pos){
result.push(+JSON.parse(item.licenseNum)
}
})

console.log(result)
您所指的示例是什么?它们为什么不起作用?为什么您的输出中没有20个?@PatrickRoberts,这是我认为很接近的示例
newdata = [6, 20, 10]