js

javascript ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ2(sort, reduce)

์œถโ‰ 2022. 10. 4. 17:05

- arr.sort(): ๋ฐฐ์—ด ์žฌ์ •๋ ฌ, ์ธ์ˆ˜๋กœ ์ •๋ ฌ ๋กœ์ง์„ ๋‹ด์€ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ
๋ฐฐ์—ด ์ž์ฒด๊ฐ€ ๋ณ€๊ฒฝ ๋˜์–ด์„œ ์ฃผ์˜ ํ•„์š”

let arr = [1,5,4,2,3];
arr.sort();
console.log(arr); //(5) [1, 2, 3, 4, 5]
let arr = ['a','d','z','c','w'];
arr.sort();
console.log(arr); //(5) ['a', 'c', 'd', 'w', 'z']

์•ž์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ธ์‹ํ•ด์„œ ๋ฐฐ์—ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆซ์ž ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ดํ•  ๊ฒฝ์šฐ fn ์‚ฌ์šฉํ•ด์•ผํ•จ
ํ•จ์ˆ˜ ์ด์šฉํ•ด ์–‘์ˆ˜์ธ์ง€ ์Œ์ˆ˜์ธ์ง€ 0 ์ธ์ง€ ํŒ๋‹จ

let arr = [27,8,5,13];
arr.sort((a,b) => {
  return a - b;
});
console.log(arr); //(4) [5,8,13,27]

-> ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Lodash(https://lodash.com/) ์‚ฌ์šฉ
Lodash ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ _.sortBy(arr); ์‚ฌ์šฉ

์ˆซ์ž, ๋ฌธ์ž, ๊ฐ์ฒด๋ฅผ ์›ํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์คŒ   =>์ถ”ํ›„์— ๊ณต๋ถ€ํ•˜๊ธฐ!

 

- arr.reduce(): ์ธ์ˆ˜๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ

(๋ˆ„์  ๊ณ„์‚ฐ๊ฐ’, ํ˜„์žฌ๊ฐ’)  => { returen ๊ณ„์‚ฐ๊ฐ’};

let arr = [1,2,3,4,5];
const result = arr.reduce((prev, cur) => {
  return prev + cur;
},0) 
console.log(result); //15

prev: ๋ˆ„์ ๋œ ๊ณ„์‚ฐ๊ฐ’

cur: ํ˜„์žฌ๊ฐ’

0: ์ดˆ๊ธฐ๊ฐ’(์“ฐ์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด ๋“ค์–ด๊ฐ)
100 ์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ ์ตœ์ข…๊ฐ’์ด 115๋กœ ๋‚˜์˜ด

 

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

์ด๋ฆ„์ด 3๊ธ€์ž์ธ ์‚ฌ๋žŒ

let result = userList.reduce((prev, cur)=>{
  if(cur.name.length === 3){
    prev.push(cur.name)
  }
  return prev;
},[]);

console.log(result); //["Tom","Sue"]