JavaScript sort와 Object 함수

HyunHo Lee·2021년 12월 1일
0
post-thumbnail

sort와 reverse

sort() 는 정렬해주는 함수이다. 하지만 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬을 해버린다.

[111, 30, 20, 14, 4, 55].sort()
// [111, 14, 20, 30, 4, 55]

정렬함수를 사용해도 원하는 결과와는 멀어보인다.

[111, 30, 20, 14, 4, 55].sort((a, b) => a - b) 
// 오름차순 [4, 14, 20, 30, 55, 111]

[111, 30, 20, 14, 4, 55].sort((a, b) => b - a) 
// 내림차순 [111, 55, 30, 20, 14, 4]

그러므로 위와같이 사용하자.


[111, 30, 20, 14, 4, 55].reverse()
// [55, 4, 14, 20, 30, 111]

[111, 30, 20, 14, 4, 55].sort((a, b) => b - a) .reverse() 
//[4, 14, 20, 30, 55, 111]

reverse를 사용하고 싶다면 sort를 오름차순이나 내림차순으로 먼저 정렬해주고 사용하자.


key 와 value

let person = {
  //key: value
  name: '이현호',
  age: 10,
  height : 30,
  weight : 40,
  이력 : {'첫번째직장' : '하나', '두번째직장' : '둘'}
}

let k = Object.keys(person);
console.log(k) // ['name', 'age', 'height', 'weight', '이력']

let v = Object.values(person);
console.log(v) // ['이현호', 10, 30, 40, {…}]

let e = Object.entries(person);
console.log(e) // [Array(2), Array(2), Array(2), Array(2), Array(2)]
  • Object.keys()
  • Object.values()
  • Object.entries()

위의 동작을 보면 이 함수들이 무슨 역할을 하는지 감이 온다.


for (let i of e) {
    console.log(i[0], i[1]);
}

for (let i of e) {
    console.log(i[0], i[1]);
}

e는 위에서 let e = Object.entries(person); 으로 선언해 주었다. 출력은 아래와 같다.

출력
name 이현호
age 10
height 30
weight 40
이력 {첫번째직장: '하나', 두번째직장: '둘'}


for (let [i, j] of [[1, 2], [3, 4]]) {
    console.log(i, j);
}
//1 2
//3 4

이와같이 사용할 수도 있다.


마무리

parameter와 argument를 혼동해서 사용하는 경우가 많았다. 그래서 간단하게 개념을 잡고 가려고한다.

function add(a, b){
	return a + b;
}

add(10, 20)

parameter는 a, b 으로 변수다.
argument는 10, 20 으로 값이다.

profile
함께 일하고 싶은 개발자가 되기 위해 달려나가고 있습니다.

0개의 댓글