Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 - Fatal编程技术网

Javascript 列出数组中重复的值

Javascript 列出数组中重复的值,javascript,arrays,Javascript,Arrays,我有一个具有重复值的数组,如何列出这些值 var result = [ { name: 'Maura Hickman' }, { name: 'Elena Vega' }, { name: 'Sylvia Norman' }, { name: 'Jana Stevenson' }, { name: 'Colon Reynolds' }, { name: 'Luisa Rutledge' }, { name: 'Pearson Marquez' }, { name: '

我有一个具有重复值的数组,如何列出这些值

var result = [ { name: 'Maura Hickman' },
  { name: 'Elena Vega' },
  { name: 'Sylvia Norman' },
  { name: 'Jana Stevenson' },
  { name: 'Colon Reynolds' },
  { name: 'Luisa Rutledge' },
  { name: 'Pearson Marquez' },
  { name: 'Sylvia Norman' },
  { name: 'Jana Stevenson' },
  { name: 'Colon Reynolds' } ]
我试过这样做

var obj = [ { name: 'Maura Hickman' },
  { name: 'Elena Vega' },
  { name: 'Sylvia Norman' },
  { name: 'Jana Stevenson' },
  { name: 'Colon Reynolds' },
  { name: 'Luisa Rutledge' },
  { name: 'Pearson Marquez' },
  { name: 'Sylvia Norman' },
  { name: 'Jana Stevenson' },
  { name: 'Colon Reynolds' } ];
if (Object.values(obj).indexOf('Jana Stevenson') > -1) {
   console.log('has Jana Stevenson');
}
但它不起作用

我期待的是以下几点

var exist =  [{ name: 'Jana Stevenson'} , {name: 'Sylvia Norman' },
{ name: 'Colon Reynolds'}]
尝试使用,维护一个助手对象,如果该键在累加器中不存在,则添加它,否则将其推入累加器,最后返回累加器

结果=[{
姓名:“莫拉·希克曼”
},
{
姓名:“埃琳娜·维加”
},
{
姓名:“西尔维亚·诺曼”
},
{
姓名:“西尔维亚·诺曼”
},
{
姓名:“西尔维亚·诺曼”
},
{
姓名:“Jana Stevenson”
},
{
名称:“科隆·雷诺兹”
},
{
姓名:“路易莎·拉特利奇”
},
{
名字:“皮尔逊·马奎兹”
},
{
姓名:“西尔维亚·诺曼”
},
{
姓名:“Jana Stevenson”
},
{
名称:“科隆·雷诺兹”
}
];
//以包含多个元素的组为例
const duplicateNames=Object.values(result.reduce)(acc,curr)=>{
//如果累加器中不存在,则添加它
如果(!会计科目[当前名称]){
会计科目[当前名称]=[当前];
}
//否则就干脆推吧
否则{
acc[当前名称].推送(当前);
}
返回acc;
}, {}))
.filter(x=>x.length>1)
.map(x=>x[0]);
console.log(重复名称)
您可以使用
filter()
findIndex()

var arr=[{name:'Maura Hickman'},
{name:'Elena Vega'},
{name:'Sylvia Norman'},
{姓名:'Jana Stevenson'},
{name:'Colon Reynolds'},
{姓名:'Luisa Rutledge'},
{name:'Pearson-Marquez'},
{name:'Sylvia Norman'},
{姓名:'Jana Stevenson'},
{name:'Colon Reynolds'},
{name:'Colon Reynolds'}]
const res=arr.filter((x,i)=>arr.findIndex(a=>a.name==x.name)!==i)
.filter((x,i,arr)=>arr.find(a=>a.name==x.name)==x);
console.log(res)
您可以为找到的名称取一个,如果找到则取对象,如果找不到则将名称添加到集合中并返回
false

var数组=[{name:'Maura Hickman'},{name:'Elena Vega'},{name:'Sylvia Norman'},{name:'Jana Stevenson'},{name:'Colon Reynolds'},{name:'Luisa Rutledge'},{name:'Pearson Marquez'},{name:'Sylvia Norman'},{name:'Jana Stevenson'},{name:'Colon'},{name:'Reynolds'},
已找到=新集合,
duplicates=array.filter(({name})=>found.has(name)| |!found.add(name));
控制台日志(重复)

。作为控制台包装{max height:100%!important;top:0;}
首先,您有一个数组,而不是一个对象。你不应该调用你的数组对象,这是令人困惑的。自<代码>{}!=={}
,您需要实际检查要确保唯一的属性。您可以使用下面的减速机,然后重新创建对象数组结构

const res=arr.reduce((a,{name})=>!a.includes(name)?a.concat(name):a,[]).map(name=>({name}));
console.log(res)

const arr=[{name:'Maura Hickman'},
{name:'Elena Vega'},
{name:'Sylvia Norman'},
{姓名:'Jana Stevenson'},
{name:'Colon Reynolds'},
{姓名:'Luisa Rutledge'},
{name:'Pearson-Marquez'},
{name:'Sylvia Norman'},
{姓名:'Jana Stevenson'},
{name:'Colon Reynolds'}];

实际结果是否为预期输出?可能重复的请添加有效结果。为什么结果中只有一个
“Colon Reynolds”
,但对于所有其他副本,它们都是相同的?