반응형

arr.sort()

배열 재정렬
배열 자체가 변경되니 주의

/*****************************************************************
arr.sort()
배열 재정렬
주의! 배열 자첵 변경됨
인수로 정렬 로직을 담은 함수를 받음
*****************************************************************/

let arr = [1, 5, 4, 2, 3];

arr.sort();

console.log(arr);

------------------------------------------------------------

let arr2 = ["a", "c", "d", "e", "b"];

arr2.sort();

console.log(arr2);

------------------------------------------------------------

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

arr.sort();

console.log(arr);

------------------------------------------------------------

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

function fn(a, b) {
  return a - b;
}

arr.sort(fn);

console.log(arr);

------------------------------------------------------------

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

arr.sort((a, b) => {
  console.log(a, b);
  return a - b;
});

console.log(arr);

------------------------------------------------------------

Lodash

_.sortBy(arr);

https://lodash.com/

------------------------------------------------------------

/*****************************************
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);

------------------------------------------------------------

// 배열의 모든 수 합치기

let arr = [1, 2, 3, 4, 5];

// for, for of, forEach

const result = arr.reduce((prev, cur) => {
  return prev + cur;
}, 100);

console.log(result);

------------------------------------------------------------

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);

------------------------------------------------------------

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) => {
  return (prev += cur.age);
}, 0);

console.log(result);

------------------------------------------------------------

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.name.length === 3) {
    prev.push(cur.name);
  }
  return prev;
}, []);

console.log(result);

반응형