const users = [
...,
{
"id" : 5,
"name" : "Jalla",
"lastName" : "Koo",
"age" : 22
},
{
"id" : 6,
"name" : "Jalla",
"lastName" : "Koo",
"age" : 22
},
{
"id" : 7,
"name" : "Lella",
"lastName" : "Moo",
"age" : 33
},
]
const indexArr = users.map(( item, index ) => item.index)
console.log(indexArr)
const fullNames = users.map( fullName ).filter(( item, index, array ) => {
return array.indexOf( item ) === index
})
console.log(fullNames)
id
в ваших объектах?нет у item'а свойства "index". Тогда уж, возвращайте переданный index:const indexArr = users.map(( item, index ) => item.index)
(item, index) => index
Впрочем, индексы выводить, скорее всего, не нужно — для чего печатать числа от 0 до N.const fullNames = users.map( fullName ).filter(( item, index, array ) => { return array.indexOf( item ) === index })
.map()
создаётся новый массив, состоящий только из полных имён. Функцию fullName()
вы не привели в вопросе, но скорее всего, она из item'а делает строку item.name + ' ' + item.lastName
['Вася', 'Оля', 'Вася']
0
- в нулевой позиции он нашёлся. Для первого Васи это ок, он останется. Зато для третьего Васи индекс будет 2
, а поиск вернёт всё тот же 0
. Так как 2 !== 0
, дубликат-Вася вылетает и не попадает в результат. const id = 5;
const users = [
{
"id" : 5,
"name" : "Jalla",
"lastName" : "Koo",
"age" : 22
},
{
"id" : 6,
"name" : "Jalla",
"lastName" : "Koo",
"age" : 22
},
{
"id" : 7,
"name" : "Lella",
"lastName" : "Moo",
"age" : 33
}
];
const index = users.map(x => x.id).indexOf(id);