সমস্যা বিবরণ
একটি নেস্টেড অবজেক্ট দেওয়া আছে, যেমন:
let test = {
level1: {
level2: {
level3: "level3"
}
}
};
একটি ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে অবজেক্ট নেবে এবং পরবর্তী আর্গুমেন্টগুলো হিসেবে কী স্ট্রিং নেবে। ফাংশনটি যাচাই করবে যে কী কম্বিনেশনটি অবজেক্টে আছে কিনা।
সমাধান
const checkNested = function(obj = {}) {
const args = Array.prototype.slice.call(arguments, 1);
for (let i = 0; i < args.length; i++) {
if (!obj || !obj.hasOwnProperty(args[i])) {
return false;
}
obj = obj[args[i]];
}
return true;
};
let test = {
level1: {
level2: {
level3: 'level3'
}
}
};
console.log(checkNested(test, 'level1', 'level2', 'level3')); // true
console.log(checkNested(test, 'level1', 'level2', 'foo')); // false
আউটপুট
true false
কোড ব্যাখ্যা
argumentsঅবজেক্ট থেকে প্রথম আর্গুমেন্ট (obj) বাদ দিয়ে বাকিগুলোargsঅ্যারেতে সংরক্ষণ করা হয়েছে।- লুপ চালিয়ে প্রতিটি কী যাচাই করা হয়েছে। যদি কোনো কী না থাকে বা
objফালসি হয়, তবেfalseরিটার্ন করা হয়। - সব কী পাওয়া গেলে
trueরিটার্ন করা হয়।