Для получения полного доступа
зарегистрируйтесь

Удалить повторяющиеся значения в массиве объектов


var data =[
{name:'Яблоко',cost:21},
{name:'Яблоко',cost:21},
{name:'Яблоко',cost:20},
{name:'Груша',cost:30},
{name:'Слива',cost:20}
];
function uniq(arr) {
    const index = [];
    return arr.filter((elem) => {
        const str = JSON.stringify(elem);
        return index.includes(str) ? false : index.push(str);
    });
}
//по полю
function onlyUniq(myArr, key) {
    return myArr.filter((obj, pos, arr) => {
        return arr.map(el => el[key]).indexOf(obj[key]) === pos;
    });
}
console.log(uniq(data));
console.log(onlyUniq(data, 'name'));

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация