JavaScript

hasKey

javascript,object,intermediate

Sử dụng Array.prototype.every() và Object.prototype.hasOwnProperty() tìm những giá trị tồn tại có trong một object, nếu ngươc lại thì return false.

Cho một object:

let obj = {
  a: 1,
  b: { c: 4 },
  'b.d': 5
};

Tìm:

hasKey(obj, ['a']); // true
hasKey(obj, ['b']); // true
hasKey(obj, ['b', 'c']); // true
hasKey(obj, ['b.d']); // true
hasKey(obj, ['d']); // false
hasKey(obj, ['c']); // false
hasKey(obj, ['b', 'f']); // false

Đáp án:

const hasKey = (obj, keys) => {
  return (
    keys.length > 0 &&
    keys.every(key => {
      if (typeof obj !== 'object' || !obj.hasOwnProperty(key)) return false;
      obj = obj[key];
      return true;
    })
  );
};

 


Recommended snippets

Đăng ký nhận bản tin về "Học code 30 seconds"