Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 搜索不带重复项的数组React.js_Javascript_Arrays_Search_Reactjs_Duplicates - Fatal编程技术网

Javascript 搜索不带重复项的数组React.js

Javascript 搜索不带重复项的数组React.js,javascript,arrays,search,reactjs,duplicates,Javascript,Arrays,Search,Reactjs,Duplicates,我有一个数组,其中包含以下对象: arr = [ {name: 'Igor', ....}, {name: 'Anton', .... }, {name: 'Igor', .... }, {name: 'Peter', .... }, {name: 'Igor', .... } ] chat.forEach((item) => { if (names.indexOf(item.name) === -1) names.push(<

我有一个数组,其中包含以下对象:

arr = [
    {name: 'Igor', ....},
    {name: 'Anton', .... },
    {name: 'Igor', .... },
    {name: 'Peter', .... },
    {name: 'Igor', .... }
]
chat.forEach((item) => {
  if (names.indexOf(item.name) === -1) 
    names.push(<UserItem name={item.name} />);
});
我需要从atrray那里得到所有的名字,没有重复的。我试着看起来像这样

var names = [];
arr.forEach((item) => {
  if (!names.some(val => val === item)) {
    names.push(item.name);
  }
}
但是我有所有的名字,包括重复的

upd:我正在使用React 如果我只推
names.push(item.name)为了让所有东西都能工作,我得到了数组
[Igor,Anton,Peter]
。但是如果我推送这样的项目:

arr = [
    {name: 'Igor', ....},
    {name: 'Anton', .... },
    {name: 'Igor', .... },
    {name: 'Peter', .... },
    {name: 'Igor', .... }
]
chat.forEach((item) => {
  if (names.indexOf(item.name) === -1) 
    names.push(<UserItem name={item.name} />);
});
chat.forEach((项目)=>{
if(name.indexOf(item.name)=-1)
name.push();
});
我得到了5个li元素的数组:伊戈尔,安东,伊戈尔,彼得,伊戈尔。
这不是重复的安静

关闭后,您只需检查阵列是否存在重复

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} />;
});

关闭后,您只需检查阵列是否存在重复

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} />;
});

您可以使用names.indexOf,如果找不到它,它将返回-1,因此您可以添加它

arr.forEach(function(item) {
    if (names.indexOf(item) === -1) {
      names.push(item);
    }
});

您可以使用names.indexOf,如果找不到它,它将返回-1,因此您可以添加它

arr.forEach(function(item) {
    if (names.indexOf(item) === -1) {
      names.push(item);
    }
});

谢谢,这样行,但对我来说不行,你能帮忙吗?我把信息添加到question@IgorKim-这样做,然后用
map()
names
上迭代,创建一个带有markupThanks的数组,就行了!谢谢,这样行,但对我来说不行,你能帮忙吗?我把信息添加到question@IgorKim-这样做,然后用
map()
names
上迭代,创建一个带有markupThanks的数组,就行了!