برنامه نویسی
تفاوت از دو آرایه – انجمن DEV

شرح:
دو آرایه را مقایسه کنید و یک آرایه جدید را با هر آیتمی که فقط در یکی از دو آرایه داده شده یافت می شود، برگردانید، اما نه هر دو. به عبارت دیگر، اختلاف متقارن دو آرایه را برگردانید.
مثال ها
[1, 2, 3, 5], [1, 2, 3, 4, 5]
// should return [4].
[1, "calf", 3, "piglet"], [1, "calf", 3, 4]
// should return ["piglet", 4].
رویکرد من برای حل این مشکل:
- 2 آرایه را به هم متصل کنید.
- هر مورد را به obj جدید اضافه کنید
- اگر ناآرام است، مقدار 1 را دریافت کنید و اگر اینطور نیست، 2 را دریافت کنید.
- در غیر این صورت، سیم برش خورده را با طول عددی برگردانید.
- مورد را با مقدار 1 فیلتر کنید سپس عدد را ترسیم کنید.
راه حل من:
function diffArray(arr1, arr2) {
let newArr = arr1.concat(arr2)
let numObj = {}
newArr.forEach((item)=>{
numObj[item] = numObj[item] ? numObj[item] +1:1
})
return Object.keys(numObj)
.filter((item)=>{
return numObj[item] == 1
})
.map((num)=>{
if(!isNaN(num)){
return +num
}
return num
})
}
diffArray([1, "calf", 3, "piglet"], [1, "calf", 3, 4]);
روش freeCodeCamp برای حل این مشکل:
- 2 آرایه را به هم متصل کنید.
- اگر مورد شامل arr1 یا arr2 است فیلتر کنید و او را برگردانید.
راه حل freeCodeCamp:
function diffArray(arr1, arr2) {
return arr1
.concat(arr2)
.filter(item => !arr1.includes(item) || !arr2.includes(item));
}
diffArray([1, "calf", 3, "piglet"], [1, "calf", 3, 4]);
هر گونه راهنمایی یا ویرایش بسیار استقبال می شود. آن را در نظرات با من به اشتراک بگذارید ممنون که اینجا هستید!
دنبال کردن محمد عود بر
اگر سوال یا بازخوردی دارید، لطفا با من در تماس باشید