작성
·
287
0
제로초님 알고리즘 적으로 궁금한게 있어서 질문 남깁니다.
예를 들어
이러한 객체가 있습니다.
var aa = [
{
seq: 1,
user_id: "admin",
artist:"Bl",
log_id: "안녕",
},
{
seq: 1,
user_id: "admin",
artist:"Bl",
log_id: "바이",
}
]
이러한 객체를
{
seq : 1,
user_id: "admin",
artist:"Bl",
log: [ {log_id: 안녕}, {log_id: 바이} ]
}
이렇게 중복 되는 부분을 없애 주고 아닌 것들은 log: [ {log_id: 안녕}, {log_id: 바이} ]이런식으로 묶어 주려고 하는데
어떤식으로 처리 하면 될런지 아무리 제로초님 강의를 보고 해도 아이디어가 떠오르질 않아서 질문 남기게 되었습니다.
답변 4
0
감사합니다!
const arr = [];
for (obj of aa) {
const idx = arr.findIndex((v) => v.seq === obj.seq)
if (idx > -1) {
// console.log([...arr[idx].Loglog_id, obj.Loglog_id])
console.log([obj.Loglog_id])
arr[idx].Loglog_id = Array.isArray(arr[idx].Loglog_id) ? [...arr[idx].Loglog_id, obj.Loglog_id] : [arr[idx].Loglog_id, obj.Loglog_id]
// true라면 스프레드 문법으로 arr[idx].Loglog_id를 넣어주고 추가로 해당 idx의 obj.Loglog_id // 값을 넣어주고
// false 라면 arr[idx].Loglog_id 값과 해당 idx의 obj.Loglog_id값을 넣어주어 주는 형식
} else {
arr.push(obj);
}
}
으로 코드 분석 했는 데 맞을까요???
그리고
앞에
0: {id: "바이"}
1: {id: "헐퀴"}
id라는 키값을 넣어 주고 싶을때는 어떻게 해야 하나요??
[ { id: ...arr[idx].Loglog_id, obj.Loglog_id }]
이런식으로 하니 스프레드 문법으로 에러가 나더라구여
[{ id: arr[idx].Loglog_id, obj.Loglog_id}]
이런식으로 넣으면 토큰에러가 나구여 ㅠ.ㅠ
0
const arr = [];
for (obj of aa) {
const idx = arr.findIndex((v) => v.seq === obj.seq)
if (idx > -1) {
arr[idx].log_id = Array.isArray(arr[idx].log_id) ? [...arr[idx].log_id, obj.log_id] : [arr[idx].log_id, obj.log_id]
} else {
arr.push(obj);
}
}
0
seq로 묶어서 처리 하려고 하는데
var aa = [
{
seq: 1,
user_id: "admin",
artist:"Bl",
log_id: "안녕",
},
{
seq: 1,
user_id: "admin",
artist:"Bl",
log_id: "바이",
},
{
seq: 2,
user_id: "test",
artist:"sd",
log_id: "할룽",
},
{
seq: 2,
user_id: "test",
artist:"sd",
log_id: "오딩",
},
{
seq: 3,
user_id: "test",
artist:"sd",
log_id: "오딩",
}
]
이런 array안에 객체 4개가 있을떄는
결과
[
{
seq : 1,
user_id: "admin",
artist:"Bl",
log: [ {log_id: 안녕}, {log_id: 바이} ]
},
{
seq : 2,
user_id: "test",
artist:"sd",
log: [ {log_id: 할룽}, {log_id: 오딩} ]
},
{
seq: 3,
user_id: "test",
artist:"sd",
log_id: "오딩",
}
]
이런식으로 같은 seq 끼리만 묶고 같은 seq에서 log만 이렇게 묶으려고 생각 하고 있습니다.
0