معرفی
با استفاده از روش های زیر می توانیم موارد تکراری را از آرایه ای از اشیاء حذف کنیم:
با استفاده از متد Set و Array.from().
این روش شامل تبدیل آرایه اشیاء به یک شیء Set ، حذف خودکار موارد تکراری و سپس تبدیل مجدد آن به آرایه با استفاده از Array.from() است .
let arr = [{
id: 1,
name: 'John'
}, {
id: 2,
name: 'Jane'
}, {
id: 1,
name: 'John'
}];
let uniqueArray = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
id: 1,
name: 'John'
}, {
id: 2,
name: 'Jane'
}, {
id: 1,
name: 'John'
}];
let uniqueArray = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
با استفاده از متد filter()
این متد از متد filter() برای تکرار روی آرایه اشیاء استفاده می کند و بررسی می کند که آیا شی فعلی در یک آرایه جدید وجود دارد یا خیر. اگر نشد، به آرایه جدید اضافه می شود.
let arr = [{
id: 1,
name: 'John'
}, {
id: 2,
name: 'Jane'
}, {
id: 1,
name: 'John'
}];
let uniqueArray = arr.filter((obj, index, self) => index === self.findIndex((t) => (t.id === obj.id && t.name === obj.name)));
id: 1,
name: 'John'
}, {
id: 2,
name: 'Jane'
}, {
id: 1,
name: 'John'
}];
let uniqueArray = arr.filter((obj, index, self) => index === self.findIndex((t) => (t.id === obj.id && t.name === obj.name)));
با استفاده از متد ()reduce
این روش از متد ()reduce برای تکرار روی آرایه اشیاء استفاده می کند و بررسی می کند که آیا شی فعلی در یک آرایه جدید وجود دارد یا خیر. اگر نشد، به آرایه جدید اضافه می شود.
let arr = [{
id: 1,
name: "John"
}, {
id: 2,
name: "Jane"
}, {
id: 3,
name: "John"
}, {
id: 4,
name: "Jane"
}];
let uniqueArr = arr.reduce((acc, current) => {
let exists = acc.some(item => item.id === current.id && item.name === current.name);
if (!exists) {
acc.push(current);
}
return acc;
}, []);
console.log(uniqueArr);
id: 1,
name: "John"
}, {
id: 2,
name: "Jane"
}, {
id: 3,
name: "John"
}, {
id: 4,
name: "Jane"
}];
let uniqueArr = arr.reduce((acc, current) => {
let exists = acc.some(item => item.id === current.id && item.name === current.name);
if (!exists) {
acc.push(current);
}
return acc;
}, []);
console.log(uniqueArr);
اینها راههای زیادی برای حذف موارد تکراری از آرایه ای از اشیاء هستند.