ข้อมูลตัวอย่าง
var subjectNameAlongWithMarks = [ ["JavaScript", 78], ["Java", 56], ["JavaScript", 58], ["MySQL", 77], ["MongoDB", 75], ["Java", 98] ]
วิธีทำ
ใช้ Set() และ filter() ลบ duplicate ตาม index 0
ตัวอย่างโค้ด
var subjectNameAlongWithMarks = [
["JavaScript", 78],
["Java", 56],
["JavaScript", 58],
["MySQL", 77],
["MongoDB", 75],
["Java", 98]
]
var distinctResult = subjectNameAlongWithMarks.filter(function ([value]){
return !this.has(value) && !!this.add(value)
}, new Set());
console.log(distinctResult);
วิธีรัน
node fileName.js
ชื่อไฟล์ demo196.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo196.js [ [ 'JavaScript', 78 ], [ 'Java', 56 ], [ 'MySQL', 77 ], [ 'MongoDB', 75 ] ]
คำอธิบาย
filter() พร้อม thisArg = new Set()
Destructuring ([value]) ดึง index 0 (subject name)!this.has(value) && !!this.add(value) ถ้ายังไม่มีใน Set → add และ return true (keep)
ถ้ามีแล้ว → has=true → !true=false → filter out (remove duplicate)