๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JavaScript

JavaScript (ES6) - Array APIs ์ด์ •๋ฆฌ - ( ์œ ์šฉํ•œ 10๊ฐ€์ง€ ๋ฐฐ์—ด ํ•จ์ˆ˜ )

๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ์— ์•ž์„œ ์ด ๊ฒŒ์‹œ๊ธ€์˜ ๋ชจ๋“  ๊ธ€์€ ์œ ํŠœ๋ธŒ ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ๋‹˜์˜ ๋™์˜์ƒ์ด ์ถœ์ฒ˜์ž„์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.
https://www.youtube.com/watch?v=yOdAVDuHUKQ&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=8

 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์˜ ์œ ์šฉํ•œ ํ•จ์ˆ˜๋“ค์„ ์•Œ์•„๋ณด์ž !

 

 

Join

 

Join์€ ๋ฐฐ์—ด์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” API์ด๋‹ค !

๋ฐ”๋กœ ์ฝ”๋“œ๋กœ ์•Œ์•„๋ณด์ž

 

 

const fruits = ['apple', 'banana', 'orange'];
const result = fruits.join();
console.log(result);

 

 

์šฐ์„  fruits ๋ฐฐ์—ด ์•ˆ์— ์žˆ๋Š” ์„ธ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ result ๋ณ€์ˆ˜์— ํ•˜๋‚˜๋กœ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ ์œ„ํ•ด join ์„ ํ•ด์ค€๋‹ค

โ€‹

result๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ์•Œ์•„๋ณด์ž

 

 

apple,banana,orange

 

 

์ถœ๋ ฅ์ด ๋  ๋•Œ ์ž๋™์ ์œผ๋กœ ์ฝค๋งˆ , ๊ฐ€ ์‚ฌ์ด์— ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค join์˜ ๊ด„ํ˜ธ () ์— ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๋‹ค๋ฅธ ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค

 

 

const result = fruits.join('|');

 

 

์ด๋ฒˆ์—๋Š” ๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž | ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ถœ๋ ฅํ•ด๋ณด์ž

 

 

apple|banana|orange

 


 

split

 

 

์ด๋ฒˆ์—๋Š” ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” API์ด๋‹ค

์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์•Œ์•„๋ณด์ž !

 

 

const fruits = 'apple, banana, orange, cherry';
const result = fruits.split(',');
console.log(result);

 

 

split์„ ์ด์šฉํ•˜์—ฌ fruits ์•ˆ์˜ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

 

 

(4) ['apple','banana','orange','cherry']

 

 

์ด๋ฒˆ์—๋Š” ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐœ์ˆ˜๊นŒ์ง€ ์ง€์ •ํ•ด๋ณด์ž

 

 

const result = fruits.split(',', 3);

 

 

์œ„์ฒ˜๋Ÿผ 3๊ฐœ๋งŒ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ง€๋„๋ก ํ•ด๋ณด์•˜๋‹ค

 

 

(3) ['apple','banana','orange']

 

 


 

 

reverse

 

 

์ด๋ฒˆ์—๋Š” ๋ฐฐ์—ด ์•ˆ์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” reverse์ด๋‹ค

 

 

const array = [1, 2, 3, 4, 5];
array.reverse();
console.log(array);

 

 

์œ„์™€ ๊ฐ™์ด reverse๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋Œ€๋กœ ์ถœ๋ ฅ์ด ๋œ๋‹ค

 

 

(5) [5, 4, 3, 2, 1]

 

 

๋ฐฐ์—ด์˜ ์ˆœ์„œ๊ฐ€ ๊ฑฐ๊พธ๋กœ ๋’ค๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 


 

 

slice

 

 

๋ฐฐ์—ด์˜ ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” API๋ฅผ ์•Œ์•„๋ณด์ž

์ €๋ฒˆ ๊ฐ•์˜์— ๋ฐฐ์šด splice๋Š” ๋ฐฐ์—ด ์ž์ฒด์— ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๊ฐ’์„ ์‚ญ์ œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ณ 

โ€‹

๋ฐฐ์—ด์˜ ํŠน์ •ํ•œ ๋ถ€๋ถ„์„ ๋ฆฌํ„ดํ•˜๋Š” slice ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค

โ€‹

โ€‹

1๊ณผ 2๋ฅผ ์ œ์™ธํ•œ ๊ฐ’๋“ค์„ ์ถœ๋ ฅํ•ด๋ณด์ž

 

 

const array = [1, 2, 3, 4, 5];
const result = array.slice(2, 5);
console.log(result);
console.log(array);

 

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์„ slice์˜ () ์•ˆ์— ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ๊ฑด์ง€ ์ •ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๋ฅผ ์ง€์ •ํ•ด ์ฃผ์—ˆ๊ณ 

๋‘ ๋ฒˆ์งธ 5๋ผ๊ณ  ํ•œ ์ด์œ ๋Š” ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋Š” ๋ฐฐ์ œ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— 4๊ฐ€ ์•„๋‹Œ 5๋ผ๊ณ  ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

 

 

(3) [3, 4, 5]; // result
(5) [1, 2, 3, 4, 5]; //array

 

 

์œ„์—์„œ ์ถœ๋ ฅํ•œ result๋Š” 2๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ 4๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ž˜๋ ค์„œ ์ถœ๋ ฅ์ด ๋˜์—ˆ๊ณ 

splice์™€ ๋‹ค๋ฅด๊ฒŒ ์›๋ž˜ array์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค

 

 


 

find

 

 

๋‹ค์Œ์€ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ๋Š” find์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

โ€‹

์šฐ์„  ํด๋ž˜์Šค์™€ ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•ด๋ณด์ž

 

 

class Student {
  constructor(name, age, enrolled, score) {
    this.name = name;
    this.age = age;
    this.enrolled = enrolled;
    this.score = score;
  }
}
const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

find๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ 90์ ์ธ ํ•™์ƒ์„ ์ฐพ์•„๋ณด์ž

 

 

const result = students.find((student) => student.score === 90);
console.log(result);

 

 

๋งค๊ฐœ๋ณ€์ˆ˜๋กœ student ์ž๋ฆฌ๋Š” value์ธ๋ฐ student ๋ฐฐ์—ด์˜ ๋ชจ๋“  ํ•™์ƒ๋“ค์„ ๋œปํ•œ๋‹ค!

 

find๋Š” ๋’ค์— ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋Š”๋ฐ boolean ํ˜•์‹์œผ๋กœ ์›ํ•˜๋Š” ๊ฐ’์ด๋ฉด true ์•„๋‹ˆ๋ฉด false๋กœ ์ฐพ๋Š” ๋ฐฉ์‹์ด๋‹ค

์ฆ‰ ์œ„์—์„œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์ˆ˜๊ฐ€ 90์ธ ํ•™์ƒ์„ ์ฐพ๋Š”๋‹ค

โ€‹

new Student('A', 29, true, 45) - score๊ฐ€ 45์ด๊ธฐ ๋•Œ๋ฌธ์— false

new Student('B', 28, true, 80) - score๊ฐ€ 80์ด๊ธฐ ๋•Œ๋ฌธ์— false

new Student('C', 30, true, 90) - score๊ฐ€ 90์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฐพ์•˜์œผ๋ฏ€๋กœ true!

โ€‹

์ฝœ๋ฐฑํ•จ์ˆ˜์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž๋ฉด ๋ง ๊ทธ๋Œ€๋กœ 'Callback' ์ฆ‰ ์–ด๋–ค ์กฐ๊ฑด์— ์˜ํ•ด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋‹ค๊ฐ€ ๋์ด ๋‚ฌ์Œ์„ ์•Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค

 

 


 

filter

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

๋‹ค์Œ์€ ์ˆ˜์—…์— ๋“ฑ๋กํ•œ ( enrolled ) ํ•™์ƒ๋“ค๋งŒ ์ฐพ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” filter ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

 

 

const result = students.filter((student) => student.enrolled);

 

์ด๋ฒˆ์—๋„ Callback ํ•จ์ˆ˜๋กœ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค filter๋„ find์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ bollean ์œผ๋กœ ์ฐพ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— true๋ฅผ ์ฐพ๋Š”๋‹ค enrolled ์ด ๋˜์—ˆ๋‹ค๋ฉด true๋กœ ์„ค์ •ํ•ด ๋‘์—ˆ์œผ๋‹ˆ true์ธ ํ•™์ƒ๋งŒ ์ฐพ์•„ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค!

 

 


 

 

map

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

์ด๋ฒˆ์—๋Š” ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜๋งŒ์œผ๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” map์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

 

 

const result = students.map((student) => student.score);
console.log(result);

 

 

(5) [45, 80, 90, 66, 88]

 

 

map ๋„ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค ์—ฌ๊ธฐ์„œ map ์ด๋ž€ student.score๋ฅผ ์œ„์™€ ๊ฐ™์ด ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ณ 

๋˜๋Š” ๊ณฑํ•˜๊ฑฐ๋‚˜ ๋”ํ•˜๊ธฐ ๋“ฑ ๋‹ค๋ฅธ ์ž‘์—…๋“ค์„ ํ•ด์„œ ์ „๋‹ฌํ•ด ์ฃผ๋Š” mapping์„ ํ•˜๋Š” API์ด๋‹ค

 

 

const result = students.map((student) => student.score * 2);
console.log(result);

 

์ด๋ฒˆ์—๋Š” ์ ์ˆ˜์— 2๋ฅผ ๊ณฑํ•˜์—ฌ mapping ํ•˜๋Š” ์ž‘์—…์„ ํ•ด๋ณด์ž

 

 

(5) [90, 160, 180, 132, 176]

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜์•ˆ์— item์ด๋‚˜ value์™€ ๊ฐ™์ด ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์œ„์˜ ์ฝ”๋“œ๋Š” ํ•œ ์ค„ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์—

value.score๋ผ๊ณ  ํ•˜๋ฉด ๋ฐ”๋กœ srudents ์•ˆ์— ์žˆ๋Š” ๊ฐ’๋“ค์˜ score ๋ผ๊ณ  ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ฒŒ ๋˜๋ฉด ํ•œ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๊ธ‰์ ์ด๋ฉด ์‰ฌ์šด ์ด๋ฆ„์„ ์ง“๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค !

 

 


 

 

some, every

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

50์ ๋ณด๋‹ค ๋‚ฎ์€ ํ•™์ƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” some์„ ์ด์šฉํ•˜์—ฌ ์ฐพ์•„๋ณด์ž

 

 

const result = students.some((student) => student.score < 50);
console.log(result);

 

 

some๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Callback ํ•จ์ˆ˜์ด๋ฉฐ 50์  ์ดํ•˜์˜ ํ•™์ƒ์ด ํ•œ ๋ช…์ด๋ผ๋„ ์กด์žฌํ•œ๋‹ค๋ฉด true๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค

โ€‹

๊ฒฐ๊ณผ๋Š” true !

โ€‹

 

๋‹ค์Œ์€ ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜๊ฐ€ 50์ ๋ณด๋‹ค ๋‚ฎ์€์ง€ ๋†’์€์ง€๋ฅผ ํ™•์ธํ•˜๋Š” every์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

 

 

const result = students.every((student) => student.score < 50);
console.log(result);

 

 

๋ชจ๋“  ํ•™์ƒ์˜ ์ ์ˆ˜๊ฐ€ 50์ ๋ณด๋‹ค ๋‚ฎ์ง€ ์•Š์œผ๋‹ˆ

๊ฒฐ๊ณผ๋Š” false !

 


 

 

reduce

 

์ด๋ฒˆ์—๋Š” ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜๋ฅผ ํ‰๊ท ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด reduce์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

โ€‹

reduce๋Š” ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” API ์•„๋‹Œ ๋ฐฐ์—ด์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋Œ๋ฉด์„œ ๋ˆ„์ ๋œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” API์ด๋‹ค

โ€‹

reduce๋Š” ์ด์ „ ๊ฐ’ ( previous ) ์™€ ํ˜„์žฌ ๊ฐ’ ( current ) ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ์–ด๋– ํ•œ ๋ˆ„์ ๋œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค

์ฆ‰ [1, 2, 3, 4] ๋ผ๋Š” ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž

โ€‹

previous ๊ฐ’์˜ ์ดˆ๊ธฐ๊ฐ’์„ 0 ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  current ๊ฐ’์€ ์ž๋™์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ธ์ž ๊ฐ’์ธ 1์ด ํ• ๋‹น๋œ๋‹ค

๊ทธ ํ›„ ๋งˆ์ง€๋ง‰์— ๋‹ค์Œ previous ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

โ€‹

์ด์ „ ๊ฐ’ ( previous ) ์™€ ํ˜„์žฌ ๊ฐ’ ( current ) ์„ ๋”ํ•ด์„œ ๋ฆฌํ„ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค๋ฉด

โ€‹

previous 0

current 1

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

previous 1

current 2

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

previous 3

current 3

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

previous 6

current 4

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

๊ฒฐ๊ณผ๊ฐ’ 10

โ€‹

์œ„์™€ ๊ฐ™์ด ๋กœ์ง์ด ๋Œ์•„๊ฐ„๋‹ค

โ€‹

 

previous ์—๋Š” ๋ฆฌํ„ด ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  current๋Š” ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค

 

์˜ˆ )

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

์ด๋ฅผ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด๋ณด๋ฉด

 

 

const result = students.reduce((prev, curr) => prev + curr.score, 0);  
                                                // prev ์˜ ์ดˆ๊ธฐ๊ฐ’์„ 0 ์œผ๋กœ ์ง€์ •
console.log(result / students.length);

 

 

์šฐ์„  prev์™€ curr ์œผ๋กœ ์ด์ „ ๊ฐ’๊ณผ ํ˜„์žฌ ๊ฐ’์„ ๋ฐ›๊ณ 

์ด์ „ ๊ฐ’๊ณผ ํ˜„์žฌ ๊ฐ’์˜ score ๋ฅผ ๋”ํ•ด์ฃผ๋ฉด score ๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์ด result์— ํ• ๋‹น์ด ๋œ๋‹ค

โ€‹

 


 

 

๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด๋ณด์ž

 

 

const result = students.map((student) => student.score)  //score๋งŒ ๋ฐฐ์—ด๋กœ ์ƒ์„ฑ
.filter((score) => score >= 50)  //์ ์ˆ˜๊ฐ€ 50์  ์ด์ƒ์ธ ๋ฐฐ์—ด๋กœ ๊ตฌ๋ถ„
.join();  //score๋ฐฐ์—ด์„ join ํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

console.log(result);

 

 

์œ„์™€ ๊ฐ™์ด map์œผ๋กœ score๋ฅผ mapping ํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ์ƒ์„ฑํ•˜๊ณ 

filter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ 50์  ์ด์ƒ์ธ score๋งŒ ๋”ฐ๋กœ ๊ตฌ๋ถ„ํ–ˆ๋‹ค

join์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ !

โ€‹

 

80, 90, 66, 88

 

 

sort

 

 

const students = [
  new Student('A', 29, true, 45),
  new Student('B', 28, false, 80),
  new Student('C', 30, true, 90),
  new Student('D', 40, false, 66),
  new Student('E', 18, true, 88),
];

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐ์—ด์„ sort๋กœ ์ •๋ ฌํ•œ ๋’ค ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด๋ณด์ž

โ€‹

 

const result = students
  .map((student) => student.score)  //score ๋งŒ ์กด์žฌํ•˜๋Š” ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค 
  .sort((a, b) => a - b)   // ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ a - b
  .join();    //join ํ•˜์—ฌ ๋ฌธ์ž์—ด ์ƒ์„ฑ
console.log(result);

 

 

์šฐ์„  map์œผ๋กœ score๋งŒ ์กด์žฌํ•˜๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“  ํ›„์—

sort๋กœ a ์™€ b์˜ ๊ฐ’์„ ๋ฐ›์•„ a - b ๋ฅผ ํ•ด์ค€๋‹ค ( a - b ) ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด๋‹ค

๋งˆ์ง€๋ง‰์œผ๋กœ join์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•œ๋‹ค

โ€‹

๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•  ๋•Œ์—๋Š”

 

 

.sort((a, b) => b - a);

 

 

b - a ๋ผ๊ณ  ํ•ด์ฃผ๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๋œ๋‹ค