[JS] Array api 총 정리

2021. 7. 5. 17:19언어/Javascript

반응형

📍 split : String ➜ Array

{
  const fruits = '🍎, 🥝, 🍌, 🍒';
  console.log(fruits.split(','));
  console.log(fruits.split(',', 2)); // 리턴 받을 배열 수
}

 

 

📍 join : Array ➜ String

{
  const fruits = ['apple', 'banana', 'orange'];
  console.log(fruits.join());    // apple,banana,orange
  console.log(fruits.join('|')); // apple|banana|orange
}

 

📍 Reverse 

{
  const array = [1, 2, 3, 4, 5];
  console.log(array.reverse()); //본 배열도 정렬됨.
}

결과값: [5, 4, 3, 2, 1]

 

📍 Slice : 얕은 복사

- 지정한 범위를 새로운 배열객체로 return (원본 배열 수정X)

make new array without the first two elements

{
  const array = [1, 2, 3, 4, 5];
  console.log(array.slice(2, 5)); // 배열에서 원하는 부분만 return
}
// 결과값 [3, 4, 5]
// array = [1, 2, 3, 4, 5]

 

📍 Splice : 배열 기존 요소 수정

- 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경

- 원본 배열 변경!

{
  const array = [1, 2, 3, 4, 5];
  console.log(array.splice(0, 2)); // 본 배열에서 1,2를 삭제
}
// 결과값 [1, 2]
// array = [3, 4, 5]

 

📍 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 a student with the score 90
{
  students.find((student) => student.score === 90);
}

 

📍 filter : 조건이 true인 요소들을 모아서 새로운 배열로 리턴

- 새로운 배열객체로 return 

// make an array of enrolled students
{
  console.log(students.filter((student) => student.enrolled === true));
}

 

📍 map

- 배열의 모든 요소들을 처음부터 끝까지 하나씩 꺼내어 callback함수를 호출하고, callback함수에서 반환되어진 값들로 새로운 배열을 리턴

// make an array containing only the students' scores
// result should be: [45, 80, 90, 66, 88]
{
   console.log(students.map((student) => student.score));
}

 

📍 some & every

- some
  :배열의 요소 중에서 callback함수의 리턴 조건이 하나라도 true이면 ture를 반환 (OR)
  
- every
  :배열에 들어있는 모든 요소들이 리턴 조건을 충족하면 true, 아니면 false (AND)
  모든 배열의 조건이 만족되야할 때 쓸 것

// check if there is a student with the score lower than 50
{
  // some()
  const result = students.some((student) => student.score < 50);

  // every()
  const result2 = !students.every((student) => student.score >= 50);
  console.log(result);
}

 

📍 reduce : 배열 모든 요소를 돌면서 누적할 때 쓰는 API

// compute students' average score
{
  // my code
  let temp = 0;
  students.forEach((student) => (temp += student.score));
  console.log(temp / students.length);

  // answer
  const result = students.reduce(function (prev, curr) {
    return prev + curr.score;
  }, 0);
  console.log(result / students.length);
}

 

📝 함수형 프로그래밍 : map + filter + join

// make a string containing all the scores
// result should be: '45, 80, 90, 66, 88'
{
  // 함수형 프로그래밍
  const result = students
    .map((student) => student.score)
    .filter((score) => score > 50)
    .join();
  console.log(result);
}

 

📝 Ascending order

// Bonus! do sorted in ascending order
// result should be: '45, 66, 80, 88, 90'
{
  console.log(
    students
      .map((student) => student.score)
      .sort((a, b) => b - a) // desc
      .sort((a, b) => a - b) // asc
      .join()
  );
}



참고

🌟드림코딩 엘리님의 youtube강의를 보고 공부한 내용을 정리한 포스팅입니다🌟

👉youtube강의 https://www.youtube.com/watch?v=3CUjtKJ7PJg&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=9

 

반응형

'언어 > Javascript' 카테고리의 다른 글

TIL01 | JavaScrpit 변수  (0) 2021.09.26
[JS] Dynamic typing (dynamic type vs static type)  (0) 2021.07.10
[JS] undefined와 null  (0) 2021.07.10
[JS] async function  (0) 2021.07.08
[JS] Promise 개념 및 활용  (0) 2021.07.06