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

การรวมและแก้ไขอาร์เรย์ใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขสองอาร์เรย์ arr1 และ arr2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง

ฟังก์ชันควรรวมองค์ประกอบของทั้งสองอาร์เรย์นี้เข้าไปในอาร์เรย์ใหม่ และหากมีค่าซ้ำกันขณะรวมหรือก่อนรวม เราควรลบค่าซ้ำส่วนเกินออก เพื่อให้มีเพียงหนึ่งสำเนาของแต่ละองค์ประกอบในอาร์เรย์ที่รวมแล้ว

ลำดับไม่สำคัญมากนัก แต่ความถี่ขององค์ประกอบ (ซึ่งควรเป็น 1 สำหรับแต่ละองค์ประกอบ) จึงสำคัญ

ตัวอย่างเช่น หากอินพุตคือ

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];

ผลลัพธ์ควรเป็น

const output = [6, 5, 2, 1, 8, 3, 4, 9];

ตัวอย่างโค้ด

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];
const mergeAndRectify = (arr1 = [], arr2) => {
const { length: len1 } = arr1;
const { length: len2 } = arr2;
const res = [];
let curr = 0;
for (let i = 0; i < len1 + len2; i++) {
if (i >= len1) {
curr = i - len1;
if (!res.includes(arr1[curr])) {
res.push(arr1[curr]);
}
} else {
curr = i;
if (!res.includes(arr2[curr])) {
res.push(arr2[curr]);
}
}
}
return res;
};
console.log(mergeAndRectify(arr1, arr2));

ผลลัพธ์

[ 3, 4, 6, 8, 9, 5, 2, 1 ]