Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào hai mảng arr1 và arr2. arr2 là bản sao xáo trộn của arr1 chỉ thiếu một phần tử. Hàm cần tìm và trả về phần tử đó.
Ví dụ
Dưới đây là mã nguồn:
const arr1 = [6, 1, 3, 6, 8, 2];
const arr2 = [3, 6, 6, 1, 2];
const findMissing = (arr1 = [], arr2 = []) => {
const obj = {};
for (let i = 0; i < arr1.length; i++) {
if (obj[arr1[i]] === undefined) {
obj[arr1[i]] = 1;
} else {
obj[arr1[i]]++;
};
}
for (let i = 0; i < arr2.length; i++) {
if (obj[arr2[i]] === undefined || obj[arr2[i]]-- === 0) {
return arr2[i];
}
}
for (key in obj) {
if (obj[key] > 0) {
return Number(key);
}
}
return -1;
};
console.log(findMissing(arr1, arr2));Kết quả
Kết quả đầu ra trong console:
8