๐Ÿ“– [JavaScript] Array Method(2) -sort, reduce

ํ˜ฑยท2022๋…„ 9์›” 9์ผ

JavaScript_Intermediate

๋ชฉ๋ก ๋ณด๊ธฐ
8/19

๐Ÿ“Œ arr.sort() : ๋ฐฐ์—ด ์žฌ์ •๋ ฌ

๋ฐฐ์—ด ์ž์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋‹ˆ ์ฃผ์˜
์ธ์ˆ˜๋กœ ๋ฐฐ์—ด ๋กœ์ง์„ ๋‹ด์€ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ

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

๋ฌธ์ž์—ด๋„ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Œ€๋กœ ์ž˜ ์ •๋ ฌ์ด ๋จ, ์ •๋ ฌํ•  ๋•Œ ๋ฌธ์ž์—ด๋กœ ์ƒ๊ฐ

let arr = [27,13,4,5]
arr.sort();
console.log(arr); [13, 27, 4, 5] 
//๋ฌธ์ž์—ด๋กœ ์ƒ๊ฐํ•˜๋ฏ€๋กœ ์•ž์˜ ์ˆซ์ž๊ฐ€ 1,2์ธ ์ˆซ์ž๊ฐ€ ์•ž์— ์˜จ ๊ฒƒ! 
function fn(a,b){
  return a-b;
} 
//a์™€ b๋ฅผ ๋น„๊ตํ•ด์„œ ์–‘์ˆ˜, ์Œ์ˆ˜ 0์„ returnํ•จ
//a๊ฐ€ ์ ์œผ๋ฉด ์Œ์ˆ˜ ์ด๋• a๋ฅผ ์•ž์œผ๋กœ ๋ณด๋ƒ„, ํฌ๋ฉด ์–‘์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ ๋”ฐ๋ผ์„œ ์ด๋•Œ b๋ฅผ ์•ž์œผ๋กœ ๋ณด๋ƒ„
arr.sort(fn);
console.log(arr); [4,5,13,27]

๋ณดํ†ต์€ Lodash๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ!
_.sortBy(arr) : ์–ด๋–ค๊ฒƒ์ด ๋“ค์–ด์žˆ๋Š” ์ง€ ์ƒ๊ด€์—†์ด ์ œ๋Œ€๋กœ ์ •๋ ฌ์„ ํ•ด์คŒ!
Lodash ์‹ค๋ฌด์—์„œ ์˜ค์ง€๊ฒŒ ์‚ฌ์šฉ! ํ™•์ธํ•ด๋ณด๊ธฐ~

๐Ÿ“Œ arr.reduce() : ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜ ํ•ฉ์น˜๊ธฐ

์ธ์ˆ˜๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ
forEach, for ๋“ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋จ!

let arr = [1,2,3,4,5]
const result = arr.reduce((prev, cur) => {
  return prev + cur; 
},0)
 //prev: ํ˜„์žฌ๊นŒ์ง€ ๋ˆ„์ ๋œ ๊ณ„์‚ฐ ๊ฐ’, cur: ํ˜„์žฌ ๊ฐ’, ์ดˆ๊นƒ๊ฐ’: 0
 // ์ดˆ๊ธฐ๊ฐ’์ด ์ฒซ๋ฒˆ์งธ prev๊ฐ€ ๋˜๋Š” ๊ฒƒ! 

์ดˆ๊ธฐ๊ฐ’์„ ์•ˆ ์“ฐ๋ฉด ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด ๋จ

let userList = [
  {name: "Mike", age:30},
  {name: "Tom", age:10},
  {name: "Jane", age:27},
  {name: "Harry", age:12},
  {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", "Steve"]

arr.reduceRight(): reduce์™€ ๋™์ผํ•˜์ง€๋งŒ ๋‚ด์šฉ์ด ์šฐ์ธก๋ถ€ํ„ฐ ์‹œํ–‰๋จ.

profile
new blog: https://hae0-02ni.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€