I have an array of objects. The product is bought, and a new object falls into the array. How to remove the repetition of these objects?

[ {id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823, …} {id: "2", categoryId: "1", name: "Apple iPhone 6", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 953, …} {id: "4", categoryId: "5", name: "Nokia Lumia 1520", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 674, …} {id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823, …} {id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823, …} ] 

    3 answers 3

    Either way:

     var newArray = array.filter((element, index, array) => { return array.map(mapObj => mapObj['id']).indexOf(element['id']) === index; }); 

     var array = [{ id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "2", categoryId: "1", name: "Apple iPhone 6", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 953 }, { id: "4", categoryId: "5", name: "Nokia Lumia 1520", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 674 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }]; var newArray = array.filter((element, index, array) => { return array.map(mapObj => mapObj['id']).indexOf(element['id']) === index; }); console.log(newArray); 

       var arr = [{ id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "2", categoryId: "1", name: "Apple iPhone 6", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 953 }, { id: "4", categoryId: "5", name: "Nokia Lumia 1520", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 674 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }] var result = [] for (i = 0; i < arr.length; i++) { for (k = 0; k < arr.length; k++) { if (k != i) { if (arr[i].id == arr[k].id) arr[k] = '' } } } for (i = 0; i < arr.length; i++) { if (arr[i] == '') continue else result.push(arr[i]) } console.log(result) 

         var data = [{ id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "2", categoryId: "1", name: "Apple iPhone 6", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 953 }, { id: "4", categoryId: "5", name: "Nokia Lumia 1520", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 674 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }, { id: "1", categoryId: "1", name: "Apple iPhone 5c", description: "Lorem ipsum dolor sit amet, consectetur adipiscing…cies rutrum. Aliquam euismod lacus non est egesta", price: 823 }]; var uniqueItems = []; //---------------------------------------------------------------- data.forEach(function (v, i) { var ff = uniqueItems.find(e => v.name == e.name); // Find same element in uniqueItems // Not found push if(!ff) uniqueItems.push(v); }) //---------------------------------------------------------------- console.log(uniqueItems);