객체 키 이름 변경하기
✏️ 객체
const originObj = {
old1: '값1',
old2: '값2',
old3: '값3',
old4: '값4',
old5: '값5'
};
const func = ({old1: new1, old2: new2, ...rest}) => {
return {new1, new2, rest};
}
const newObj = func(originObj);
console.log(newObj);
✏️ 객체 배열
const originList = [{
old1: '값1',
old2: '값2',
old3: '값3',
old4: '값4',
old5: '값5'
}, {
old1: '값1',
old2: '값2',
old3: '값3',
old4: '값4',
old5: '값5'
}];
const func = (list) => {
return list.map(
({old1: new1, old2: new2, ...rest}) => {
return {new1, new2, rest}
}
);
}
const newList = func(originList);
console.log(newList)
배열 차집합 구하기
const arr1 = [{
"rowKey": 0,
"name": "홍길동"
}, {
"rowKey": 1,
"name": "김길동"
}, {
"rowKey": 4,
"name": "서길자"
}, {
"rowKey": 2,
"name": "고길동"
}, {
"rowKey": 3,
"name": "최길자"
}];
const arr2 = [{
name: "홍길동",
rowKey: 0
}, {
name: "김길동",
rowKey: 1
}, {
name: "고길동",
rowKey: 2
}];
// CASE 01 : findIndex
const result1 = arr1.reduce((acc, curr) => {
const index = arr2.findIndex(item => item.rowKey === curr.rowKey);
index === -1 && acc.push(curr);
return acc;
}, []);
console.log(result1);
// CASE 02 : some
const result2 = arr1.filter(row => {
return !arr2.some(item => row.rowKey === item.rowKey)
});
console.log(result2);
// CASE 03 : Set
// 비교해야 할 키가 하나일 때
let keySet = new Set(arr2.map(({rowKey}) => rowKey));
let result3 = arr1.filter(({rowKey}) => !keySet.has(rowKey));
console.log(result3);
// 비교해야 할 키가 여러 개일 때 (JSON.stringfy({비교할 값들})로 사용해도 동일
// ex) JSON.stringify({rowKey, name})
keySet = new Set(arr2.map(({rowKey, name}) => `${rowKey, name}`));
result3 = arr1.filter(({rowKey, name}) => !keySet.has(`${rowKey, name}`));
console.log(result3);
배열 중복 값 구하기
const arr = ['김', '박', '김', '서', '한', '이', '최', '한', '유'];
const func1 = (arr) => {
return arr.filter((item, index) => arr.indexOf(item) !== index);
}
console.log(func1(arr)); // ["김", "한"]
const func2 = (arr) => {
const uniqueSet = new Set(arr);
const filtered = arr.filter(item => {
if (uniqueSet.has(item)) {
uniqueSet.delete(item);
} else {
return item;
}
});
return [...new Set(filtered)]
}
console.log(func2(arr)); // ["김", "한"]
'개발 > Javascript' 카테고리의 다른 글
javascript 객체 키 이름 변경 (0) | 2022.07.08 |
---|---|
javascript 배열 내 중복 값 구하기 (0) | 2022.06.23 |
javascript byte 수 계산 (0) | 2022.06.21 |
Object.freeze 객체 동결 / 객체 읽기 속도 (0) | 2022.05.12 |
ES6 Syntax (0) | 2022.05.03 |
댓글