Viết hàm tìm phần tử chỉ có trong một trong hai mảng (symmetric difference). Dùng indexOf hoặc includes (hiện đại hơn).
Ví dụ
<html>
<head>
<title>Hiệu hai mảng trong JavaScript</title>
</head>
<body>
<script>
function arrDifference(arr1, arr2) {
var result = [];
// Phần tử có trong arr1 nhưng không có trong arr2
for (var i = 0; i < arr1.length; i++) {
if (arr2.indexOf(arr1[i]) === -1) result.push(arr1[i]);
}
// Phần tử có trong arr2 nhưng không có trong arr1
for (var i = 0; i < arr2.length; i++) {
if (arr1.indexOf(arr2[i]) === -1) result.push(arr2[i]);
}
return result.sort((a,b) => a - b);
}
document.write(arrDifference([50, 40, 90], [70, 50, 99, 40, 90]));
</script>
</body>
</html>
Kết quả
70,99
Cách hiện đại (ES6): [...new Set([...arr1.filter(x => !arr2.includes(x)), ...arr2.filter(x => !arr1.includes(x))])].sort((a,b)=>a-b)