Computer >> Máy Tính >  >> Lập trình >> Javascript

Kiểm tra sự tồn tại của khóa đối tượng JavaScript lồng nhau trong JavaScript

Giả sử, chúng ta có một tham chiếu đến một đối tượng -

let test = {};

Đối tượng này có khả năng (nhưng không phải ngay lập tức) có các đối tượng lồng nhau, giống như -

test = {level1: {level2: {level3: "level3"}}};

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một đối tượng như vậy làm đối số đầu tiên và sau đó là bất kỳ số chuỗi khóa nào làm đối số sau.

Hàm phải xác định xem tổ hợp lồng nhau được mô tả bằng các chuỗi khóa có tồn tại trong đối tượng hay không.

Ví dụ

Mã cho điều này sẽ là -

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'));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true
false