путаете индекс массива со свойством
id
в ваших объектах?
const indexArr = users.map(( item, index ) => item.index)
нет у item'а свойства "index". Тогда уж, возвращайте переданный 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
, дубликат-Вася вылетает и не попадает в результат.