Saya belum melihat ini di garis bawah jadi saya ingin membuang ini di luar sana.
Saya menemukan ini berguna ketika saya melakukan hal-hal seperti membuat daftar buku yang direkomendasikan berdasarkan buku-buku yang telah dilihat, disukai, atau disukai teman-teman pengguna. Kemudian tunjukkan kepada mereka daftar unik dari kemungkinan rekomendasi.
function distinct(items, prop) {
var unique = [];
var distinctItems = [];
_.each(items, function(item) {
if (unique[item[prop]] === undefined) {
distinctItems.push(item);
}
unique[item[prop]] = 0;
});
return distinctItems;
}
// likedBooks + viewedBooks + friendLikedBooks + friendViewedBooks
var books = [
{ name: 'Holes', id: 1 },
{ name: 'Treasure Island', id: 2 },
{ name: 'Holes', id: 2 }
];
var uniqueBooks = distinct(books, 'id');
console.log(uniqueBooks);
/**
var uniqueBooks = [
{ name: 'Holes', id: 1 },
{ name: 'Treasure Island', id: 2 }
];
*/
Saya ingin membuat PR yang lebih tepat, tetapi saya ingin melihat apa yang dipikirkan orang terlebih dahulu.
Anda dapat melakukannya dengan yang berikut ini, meskipun Anda tidak dapat menggunakan singkatan nama properti.
_.uniq(books, function(book) { return book.id; })
Ty @braddunbar Tidak berpikir saya bisa melakukan itu dari dokumen. Akan sangat membantu sebagai contoh kedua di sana.
http://underscorejs.org/#uniq
Metode _.property
yang baru seharusnya dapat menyelesaikan kasus penggunaan ini dengan cukup baik.
Komentar yang paling membantu
Anda dapat melakukannya dengan yang berikut ini, meskipun Anda tidak dapat menggunakan singkatan nama properti.