#8. sort, reduce

Seulyi Yoo·2022년 7월 7일
0

javascript grammar

목록 보기
8/20
post-thumbnail

arr.sort() : 배열 재정렬, 배열 자체가 변경되니 주의

let arr = [1, 5, 4, 2, 3];
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5];

let arr = ['a', 'g', 'f', 'c'];
arr.sort();
console.log(arr); // ['a', 'c', 'f', 'g'];

let arr = [27, 8, 5, 13];
arr.sort(); // 문자열로 인식해 정렬함
console.log(arr); //  [13, 27, 5, 8]

let arr = [27, 8, 5, 13];

function fn(a, b){
  console.log(a, b); // 8 27 / 5 8 / 13 5 / 13 8 / 13 27
  // 8, 27, 5, 13
  // 5, 8, 27, 13
  // 5, 8, 13, 27
  return a - b;
}

arr.sort(fn);
console.log(arr); // [5, 8, 13, 27]

// Lodash 라이브러리 사용, _.sortBy(arr);

arr.reduce() : (누적 계산값, 현재값) ⇒ {return 계산값};

// 배열의 모든 수 합치기
let arr = [1, 2, 3, 4, 5];

// for, for of, forEach
let result = 0;
arr.forEach(num => {
  result += num;
});
console.log(result); // 15

const result = arr.reduce((prev, cur)=>{
  return prev + cur;
}, 0); // 초기값
console.log(result); // 15

let userList = [
  { name: "Mike", age: 30 },
  { name: "Tom", age: 10 },
  { name: "Jane", age: 27 },
  { name: "Sue", age: 26 },
  { name: "Harry", age: 42 },
  { name: "Steve", age: 60 }
];

let result = userList.reduce((prev, cur)=>{
 if(cur.age > 19) {
   prev.push(cur.name);
 } 
  return prev;
}, []);
console.log(result); // ["Mike", "Jane", "Sue", "Harry", "Steve"]

let result = userList.reduce((prev, cur)=>{ 
  return (prev += cur.age);
}, 0);
console.log(result); // 195

let result = userList.reduce((prev, cur)=>{ 
  if(cur.name.length === 3){
    prev.push(cur.name);
  }
  return prev;
}, []);
console.log(result); // ["Tom", "Sue"]
profile
성장하는 개발자 유슬이 입니다!

0개의 댓글