สมมติว่าเรามีการอ้างอิงถึงวัตถุ -
let test = {}; ออบเจ็กต์นี้อาจ (แต่ไม่ใช่ในทันที) มีออบเจ็กต์ที่ซ้อนกันอยู่ เช่น −
test = {level1: {level2: {level3: "level3"}}}; เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับหนึ่งในวัตถุเช่นอาร์กิวเมนต์แรกและสตริงคีย์จำนวนเท่าใดก็ได้เป็นอาร์กิวเมนต์หลังจากนั้น
ฟังก์ชันควรกำหนดว่าชุดค่าผสมที่ซ้อนกันซึ่งแสดงโดยสตริงคีย์มีอยู่ในวัตถุหรือไม่
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
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'));
console.log(checkNested(test, 'level1', 'level2', 'foo')); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true false