Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ลบค่าใน Array โดยเปรียบเทียบ Items Index 0 ใน JavaScript

ข้อมูลตัวอย่าง

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)