เราจำเป็นต้องเขียนฟังก์ชันที่ลบวัตถุที่ซ้ำกันออกจากอาร์เรย์และคืนค่าใหม่ พิจารณาว่าวัตถุหนึ่งซ้ำกับอีกวัตถุหนึ่ง หากทั้งสองมีจำนวนคีย์เท่ากัน คีย์เหมือนกัน และมีค่าเท่ากันสำหรับแต่ละคีย์
มาเขียนโค้ดสำหรับสิ่งนี้กัน −
เราจะใช้แผนที่เพื่อจัดเก็บวัตถุต่างๆ ในรูปแบบสตริง และเมื่อเราเห็นคีย์ที่ซ้ำกัน เราจะละเว้นมัน มิฉะนั้น เราจะดันวัตถุนั้นเข้าไปในอาร์เรย์ใหม่ -
ตัวอย่าง
const arr = [ { "timestamp": 564328370007, "message": "It will rain today" }, { "timestamp": 164328302520, "message": "will it rain today" }, { "timestamp": 564328370007, "message": "It will rain today" }, { "timestamp": 564328370007, "message": "It will rain today" } ]; const map = {}; const newArray = []; arr.forEach(el => { if(!map[JSON.stringify(el)]){ map[JSON.stringify(el)] = true; newArray.push(el); } }); console.log(newArray);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ { timestamp: 564328370007, message: 'It will rain today' }, { timestamp: 164328302520, message: 'will it rain today' } ]