Q1.
원소갯수가 N개인 어떤 배열 A가 있고, 똑같이 원소갯수가 N개인 배열 B가 있어.
이때, C라는 JSON을,
const c = {A, B}; 라고 만들면,
어떻게 내부적으로 구성되는거야?
A의 원소 a1이라는 키에 B의 원소 b1, a2에 b2..... 이렇게 대응되는거야?
A1.
2/2
ChatGPT의 말:
아니, const c = {A, B};라는 코드는 네가 생각한 것처럼 배열 A의 각 원소가 키가 되고, 배열 B의 원소가 그 키에 대응되는 값으로 구성되는 객체를 만드는 것이 아니야. 대신, 이 코드는 단순히 배열 A와 배열 B를 객체의 두 개의 속성으로 포함하는 객체를 만드는 거야.
구체적으로 살펴보자면:
입력 코드
const A = [1, 2, 3];
const B = ['a', 'b', 'c'];
const c = { A, B };
console.log(c);
결과
c의 구조는 다음과 같이 만들어져:
{
"A": [1, 2, 3],
"B": ["a", "b", "c"]
}
즉, c는 배열 A와 배열 B를 속성으로 가지고 있는 객체야. 여기서:
- A는 [1, 2, 3]이라는 배열 자체를 값으로 가지는 키가 되고,
- B는 ['a', 'b', 'c']라는 배열 자체를 값으로 가지는 키가 돼.
네가 기대한 구조를 원한다면?
배열 A의 각 원소를 키로, 배열 B의 각 원소를 값으로 하는 객체를 원한다면, 두 배열의 길이가 같다고 가정했을 때, 다음과 같이 작성해야 해:
const A = [1, 2, 3];
const B = ['a', 'b', 'c'];
const c = Object.fromEntries(A.map((key, index) => [key, B[index]]));
console.log(c);
결과
{
"1": "a",
"2": "b",
"3": "c"
}
여기서 Object.fromEntries를 사용해, A.map을 통해 각 A와 B의 원소를 키-값 쌍으로 변환한 뒤 객체를 만들었어. 이렇게 하면 네가 말한 방식대로 A의 원소를 키로, B의 원소를 값으로 대응하는 객체를 만들 수 있어!
'언어 및 도구들 공부 > Javascript' 카테고리의 다른 글
JS에서 Json값으로의 접근방법 (0) | 2024.12.13 |
---|---|
const keys = Object.keys(survivedData).sort(); (0) | 2024.12.12 |
filter 함수, JS에서 파라미터의 규칙 (0) | 2024.12.10 |
배열의 구조분해 (0) | 2024.12.10 |
JS에서 Json의 키에 연결된 함수값으로의 접근 (0) | 2024.12.09 |