Giả sử chúng ta có một tham chiếu đến đối tượng:
let test = {};
Đối tượng này có thể (nhưng không ngay lập tức) chứa các đối tượng lồng nhau, như:
test = {level1: {level2: {level3: "level3"}}};
Chúng ta cần viết hàm JavaScript nhận đối tượng làm đối số đầu tiên, tiếp theo là bất kỳ số lượng chuỗi khóa nào.
Hàm sẽ xác định xem tổ hợp khóa lồng nhau có tồn tại trong đối tượng hay không.
Ví dụ
Mã thực hiện như sau:
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'));
Kết quả
Kết quả trong console sẽ là:
true false