본문 바로가기
개발/Javascript

자바스크립트 유용한 함수 모음

by 1mj 2022. 8. 29.

객체 키 이름 변경하기

✏️ 객체

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)

return {new1, new2, rest}
return {new1, new2, ...rest}


배열 차집합 구하기

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

댓글