상황 :
todolist에서 입력 받은 todo 배열 객체의 프로퍼티들의 값들이 비어있는지 확인 하고 싶다.const data = [{},{}] // 이런 경우가 생길 수 있다.
배열 안 객체들의 key가 있는지 체크하는 방법을 쓰기 위해 아래 메소드를 써보자
// 단순 배열
const arr = ['a','b','c']
console.log(Object.keys(arr)) // 결과: ['0','1','2'] 배열인덱스가 나온듯
//배열형객체
const todo = {
todo: '자바스크립트 공부하기',
iscomplete: true,
when: '2021.11.07',
}
console.log(Object.keys(todo));
// 결과 -> Array ["todo", "iscomplete", "when"]
// 키와 순서가 무작위인 배열형 객체
const anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj));
// 결과: ['2', '7', '100'] 알아서 정렬되서 나오..네..??
열거할 수 없는 속성 포함해서 모든 속성 이름 뽑아내길 원한다면
Object.getOwnPropertyNames()를 참고해보자.
const myObj = Object.create({}, {
getFoo: {
value: function () { return this.foo; }
}
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']
// In ES5
Object.keys('foo'); // TypeError: "foo" is not an object
// In ES2015+
Object.keys('foo'); // ["0", "1", "2"]