DeDuplicate เดี่ยวหรือผสานและ DeDuplicate หลายอินพุต ตัวอย่างด้านล่าง
ใช้ ES6 - ตั้งค่าสำหรับการทำลาย
ฉันเขียนฟังก์ชันง่าย ๆ นี้ซึ่งใช้อาร์กิวเมนต์หลายตัว สวยมากเหมือนกันกับวิธีแก้ปัญหาข้างต้นมันมีกรณีใช้งานจริงมากกว่า ฟังก์ชั่นนี้ไม่ได้เชื่อมต่อค่าที่ซ้ำกันในหนึ่งอาเรย์เท่านั้นเพื่อให้สามารถลบค่าได้ในระยะหลัง
ฟังก์ชั่นระยะสั้น (เพียง 9 บรรทัด)
/**
* This function merging only arrays unique values. It does not merges arrays in to array with duplicate values at any stage.
*
* @params ...args Function accept multiple array input (merges them to single array with no duplicates)
* it also can be used to filter duplicates in single array
*/
function arrayDeDuplicate(...args){
let set = new Set(); // init Set object (available as of ES6)
for(let arr of args){ // for of loops through values
arr.map((value) => { // map adds each value to Set object
set.add(value); // set.add method adds only unique values
});
}
return [...set]; // destructuring set object back to array object
// alternativly we culd use: return Array.from(set);
}
ใช้ตัวอย่างโค้ด :
// SCENARIO
let a = [1,2,3,4,5,6];
let b = [4,5,6,7,8,9,10,10,10];
let c = [43,23,1,2,3];
let d = ['a','b','c','d'];
let e = ['b','c','d','e'];
// USEAGE
let uniqueArrayAll = arrayDeDuplicate(a, b, c, d, e);
let uniqueArraySingle = arrayDeDuplicate(b);
// OUTPUT
console.log(uniqueArrayAll); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 43, 23, "a", "b", "c", "d", "e"]
console.log(uniqueArraySingle); // [4, 5, 6, 7, 8, 9, 10]