search array without duplicates React.js
本问题已经有最佳答案,请猛点这里访问。
我有一个数组,其中包含如下对象:
1 2 3 4 5 6 7 | arr = [ {name: 'Igor', ....}, {name: 'Anton', .... }, {name: 'Igor', .... }, {name: 'Peter', .... }, {name: 'Igor', .... } ] |
我需要从Atrray那里得到所有的名字,没有重复的。我试着看起来像这样
1 2 3 4 5 6 | var names = []; arr.forEach((item) => { if (!names.some(val => val === item)) { names.push(item.name); } } |
但我知道所有的名字,包括重复的
我用的是反应如果我只是按
1 2 3 4 | chat.forEach((item) => { if (names.indexOf(item.name) === -1) names.push(<UserItem name={item.name} />); }); |
我得到5里元素的阵列:伊戈尔,安东,伊戈尔,彼得,伊戈尔。这不是重复的quiestion!
关上,你只需要检查阵列是否有重复
1 2 3 4 5 6 7 8 9 | var names = []; arr.forEach(function(obj) { if (names.indexOf(obj.name) === -1) names.push(obj.name); }); var template = names.map(function(name) { return <UserItem name={name} />; }); |
或
1 | arr.forEach( v => names.indexOf(v.name) === -1 ? names.push(v.name) : null); |
您可以使用name.indexof,如果找不到它,则返回-1,这样您就可以添加它了。
1 2 3 4 5 | arr.forEach(function(item) { if (names.indexOf(item) === -1) { names.push(item); } }); |