1) 그냥 넣기
let result = { 'a' : 0 , 'b' : 10 , 'c' : 20}
2) map을 사용
const result = {}; //빈 형태
//사용법
let num = [3, 2, 2, 4, 5, 6, 2, 1, 6];
num.map((val) => {
result[val] = (result[val] || 0) + 1;
});
// num => { '1': 1, '2': 3, '3': 1, '4': 1, '5': 1, '6': 2 }
3) 프로퍼티마다 각각 넣기
const result = {};
result['1']= 100
result['a'] = 10;
console.log(result) // {1: 100, a: 10}
object[1]
이나 object['1']
이나 같은 것으로 처리한다. let result = { 'a' : 0 , 'b' : 10 , 'c' : 20}
result['a'] //0
result['b'] //10
result['c'] //20
let result = { 'a' : 0 , 'b' : 10 , 'c' : 20}
console.log(Object.keys(result)); //["a", "b", "c"]
let result = { 'a' : 0 , 'b' : 10 , 'c' : 20}
console.log(Object.values(result)); //[0, 10, 20]
let result = { a: 0, b: 10, c: 20 };
console.log(Object.entries(result)); //[ [ 'a', 0 ], [ 'b', 10 ], [ 'c', 20 ] ]
const entries = [
["foo", "bar"],
["baz", 42],
];
const obj = Object.fromEntries(entries);
console.log(obj); //{ foo: 'bar', baz: 42 }
console.log(Object.entries(Object.fromEntries(entries))); //[ [ 'foo', 'bar' ], [ 'baz', 42 ] ]
기본적으로 함수에서 사용했던 map같은 함수를 바로 사용할 수 없다.
1) for in
const result = { 1: 1, 2: 3, 3: 1, 4: 1, 5: 1, 6: 2 };
for (let keys in result) {
console.log(keys, result[keys]);
}
2) entries 사용 후 map 사용
const result = { 1: 1, 2: 3, 3: 1, 4: 1, 5: 1, 6: 2 };
Object.entries(result).map((x) => {
console.log(x[0], x[1]);
});
위는 같은 결과이다.
let genres = ["classic", "pop", "classic", "classic", "pop"],
plays = [500, 600, 150, 800, 2500];
console.log(genres.map((t, i) => ({ genre: t, count: plays[i], index: i })));
/*
[
{ genre: 'classic', count: 500, index: 0 },
{ genre: 'pop', count: 600, index: 1 },
{ genre: 'classic', count: 150, index: 2 },
{ genre: 'classic', count: 800, index: 3 },
{ genre: 'pop', count: 2500, index: 4 }
]
*/
Process finished with exit code 0
필요에 따라 정렬을 위해 sort,filter를 쓰며 다룰수있다.
genres
.map((t, i) => ({ genre: t, count: plays[i], index: i }))
.sort((a, b) => a.count - b.count)
/*
[
{ genre: 'classic', count: 150, index: 2 },
{ genre: 'classic', count: 500, index: 0 },
{ genre: 'pop', count: 600, index: 1 },
{ genre: 'classic', count: 800, index: 3 },
{ genre: 'pop', count: 2500, index: 4 }
]
*/
genres
.map((t, i) => ({ genre: t, count: plays[i], index: i }))
.sort((a, b) => b.count - a.count);
/*
[
{ genre: 'pop', count: 2500, index: 4 },
{ genre: 'classic', count: 800, index: 3 },
{ genre: 'pop', count: 600, index: 1 },
{ genre: 'classic', count: 500, index: 0 },
{ genre: 'classic', count: 150, index: 2 }
]
*/
genres
.map((t, i) => ({ genre: t, count: plays[i], index: i }))
.filter((val) => val.genre == "pop")
/*
[
{ genre: 'pop', count: 600, index: 1 },
{ genre: 'pop', count: 2500, index: 4 }
]
*/
genres
.map((t, i) => ({ genre: t, count: plays[i], index: i }))
.filter((val) => val.count > 700)
/*
[
{ genre: 'classic', count: 800, index: 3 },
{ genre: 'pop', count: 2500, index: 4 }
]
*/