1.객체의 키를 배열로 가져오는 함수
Object.key(obj);
const obj = {
"key0": "value0",
"key1": "value1",
"key2": "value2"
}
const keys = Object.keys(obj)
console.log(keys) // ["key0", "key1", "key2"]
2.객체의 값을 배열로 가져오는 함수
Object.value(obj);
const obj = {
"key0": "value0",
"key1": "value1",
"key2": "value2"
}
const values = Object.values(obj)
console.log(values) // ["value0", "value1", "value2"]
3.객체를 키와 값형태의 함수
Object.entries(obj);
const obj = {
"key0": "value0",
"key1": "value1",
"key2": "value2"
}
const entries = Object.entries(obj)
console.log(entries)
/*
[
["key0", "value0"],
["key1", "value1"],
["key2", "value2"]
]
*/
4.키와 값형태의 배열을 객체로 되돌리는 함수
Object.fromEntries(arr);
Object.entries()를 사용해서 객체를 배열형태로 받았을때, 그걸 다시 객체 형태로 되돌리는 함수
const arr = [
["K1", "V1"],
["K2", "V2"]
];
const obj = Object.fromEntries(arr);
console.log(obj); // {K1: "V1", K2: "V2"}
5.객체를 추가하거나 복사하는 함수
Object.assign(target,source);
아래의 예제는 추가하는 경우이다. 동일한 값이 있는 경우 덮어쓴다
const target = { a: 1, b: 2 }
const source = { b: 3, d: 4}
const returnedTarget = Object.assign(target, source);
console.log(target) // { a: 1, b: 3, d: 4 }
console.log(source) // { b: 3, d: 4 }
console.log(returnecTarget) // { a: 1, b: 3, d: 4 }
아래의 예제는 복사하는 경우이다. 그러나 얕은 복사이기때문에 복사한 객체 내부의 객체의 값은 연동되어있는것이 확인가능하다
그리고 추가적으로 Spread 연산자를 사용해도 마찬가지로 얕은 복사 이다 const copy = {...object}
-
그렇기 때문에 깊은 복사를 하는 경우는 JSON.parse(JSON.stringify(obj)) 등을 사용하는것이 바람직하다
const object = {
a: "a",
number: {
one: 1,
two: 2,
},
};
const copy = Object.assign({}, object);
copy.number.one = 3;
console.log(object === copy); // false
console.log(object.number.one === copy.number.one); // true
// 얼핏 복사가 된것처럼 보이지만 Object의 number.one도 3으로 바뀌어 버린것이 확인가능하다
참조
http://www.gisdeveloper.co.kr/?p=11433
https://engineer-mole.tistory.com/151
https://bbangson.tistory.com/78
Feb 25, 2023
Views 103