TIL18 - JavaScript 배열 API
API란?
개발을 공부하면서 구글링을 하다보면 많이 보는 용어가 하나 있다. 바로 API(Application Programming Interface)이다. API는 무엇일까?
API는 Application Programming Interface의 약자로 현재도 많은 곳에서 사용하고 있다. 이 안에는 사용자가 웹 브라우저와 상호작용할 수 있는 기능들이 모여있어 개발자가 개발을 할 때 이 API를 사용하면 더 쉽고 효율적인 개발이 가능하다.
배열에 들어있는 데이터들을 배열과 관련된 여러 API를 사용하여 출력한다면 더 효과적으로 원본 배열에서 자신이 원하는 방식으로 값을 뽑아낼 수 있을 것이다.
그럼 지금부터 코드로 각 API가 어떻게 동작하는지 알아보기 위해 먼저 배열을 선언해보자.
const fruits = ['apple', 'banana', 'orange'];
console.log(myFruits);
결과 :
["apple", "banana", "orange"]
1. Array.join()
모든 배열의 값들을 String으로 나타낸다.
arr.join(seperator?: string)
?는 넣어도 되고 안 넣어도 정상적으로 작동한다는 뜻이다.
- Return 값 : String
- seperator : 문자열을 넣을 수 있으며 배열의 값을 구분한다.
console.log(`원본 배열 : ${myFruits}`);
const myFruits2 = fruits.join(' ');
const myFruits3 = fruits.join('');
console.log(myFruits2);
console.log(myFruits3);
결과 :
원본 배열 : ["apple", "banana", "orange"]
apple banana orange
apple,banana,orange
2. Array.split()
String을 배열로 나타낸다.
str.split([separator[, limit?]])
- Return 값 : Array
- seperator : 문자열을 끊어야 할 부분을 나타내는 문자열.
- limit : 끊어진 문자열의 최대 개수를 나타내는 정수
const fruits = 'apple, banana, orange, cherry';
const fruits2 = fruits.split(', ', 2);
const fruits3 = fruits.split(', ');
console.log(fruits);
console.log(fruits2);
console.log(fruits3);
}
결과 :
apple, banana, orange, cherry
["apple", "banana"]
["apple", "banana", "orange", "cherry"]
3. Array.reverse()
배열의 순서를 반전시킨다.
arr.reverse()
- Return 값 : 순서가 반전된 Array
const array = [1, 2, 3, 4, 5];
const result = array.reverse();
console.log(array);
console.log(result);
}
결과 :
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
4. Array.sort()
배열의 값들을 적절한 위치에 정렬시킨 후 그 배열을 반환한다.
arr.sort(compareFunction)
- Return 값 : Array
- compareFunction((a,b) => a-b) : 배열 속 값들의 순서를 결정한다.
- 음수(a - b) : 오름차순
- 0 : 변함없음(같음)
- 양수(b - a) : 내림차순
const array = [1, 2, 3, 4, 5];
const result = array.sort(function (a, b) {
return b - a;
});
console.log(array);
console.log(result);
}
결과 :
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
5. Array.slice()
배열의 일부를 추출하여 복사본을 반환한다.
arr.slice([start[, end]])
- Return 값 : 추출한 요소를 포함한 새로운 Array
- start : 시작 인덱스
- end : 끝 인덱스
const array = [1, 2, 3, 4, 5];
const newArray = array.slice(2);
console.log(array);
console.log(newArray);
}
결과 :
[1, 2, 3, 4, 5]
[3, 4, 5]
여기서 잠깐!✋🏻
배열 안의 데이터 타입이 Object일 때는 어떤 식으로 배열 안의 데이터를 이용할 수 있을까? 코드를 예시로 설명하겠다.
6. Array.find()
주어진 콜백 함수를 만족하는 첫 번째 값을 반환한다.
arr.find(callbackFunction(value, index, obj) => value, thisArg?)
- Return 값 : 주어진 함수를 만족하는 첫 번째 요소의 값
- callbackFunction : 배열의 각 값에 대해 실행할 함수
- value : 콜백 함수에서 처리할 현재 값
- index : 콜백 함수에서 처리할 현재 인덱스
- obj : 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),
];
// score가 90점인 학생을 찾는다.
console.log(students.find(student => student.score === 90));
}
결과 :
Student {name: "C", age: 30, enrolled: true, score: 90}
7. Array.filter()
주어진 콜백 함수를 만족하는 모든 요소를 반환한다.
arr.filter(callbackFunction(value, index, array) => value, thisArg?)
- Return 값 : 주어진 함수를 만족하는 모든 요소의 값들로 이루어진 배열
- callbackFunction : 배열의 각 값에 대해 실행할 함수
- value : 콜백 함수에서 처리할 현재 값
- index : 콜백 함수에서 처리할 현재 인덱스
- array : filter 함수를 호출한 배열
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),
];
// enrolled가 true인 값들을 모아 새로운 배열을 만든다.
console.log(students.filter(student => student.enrolled));
}
결과 :
[Student, Student, Student]
/*
0: Student {name: "A", age: 29, enrolled: true, score: 45}
1: Student {name: "C", age: 30, enrolled: true, score: 90}
2: Student {name: "E", age: 18, enrolled: true, score: 88}
*/
8. Array.map()
배열의 각 값에 콜백 함수를 호출한 결과를 모아서 새로운 배열을 반환한다.
arr.map(callbackFunction: (value, index, array), thisArg?)
- Return 값 : 콜백 함수를 실행한 결과를 모은 새로운 배열
- callbackFunction : 새로운 배열 요소를 생성하는 함수
- value : 콜백 함수에서 처리할 현재 값
- index : 콜백 함수에서 처리할 현재 인덱스
- array : map 함수를 호출한 배열
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),
];
// students에서 score의 값만 모아 놓은 배열을 만든다.
const result = students.map(student => student.score);
console.log(result);
}
결과 :
[45, 80, 90, 66, 88]
9. Array.some(), Array.every()
some()
: 주어진 콜백 함수의 리턴값이 배열의 각 값에 대해 참인 경우를 확인한다.every()
: 배열의 모든 값이 주어진 콜백 함수를 만족하는지 확인한다.
some
arr.some(callbackFunction: (value, index, array), thisArg?)
- Return 값 : 콜백 함수를 실행해서 나온 boolean 값(true or false)
- callbackFunction : 배열의 각 값을 검사하는 함수
- value : 콜백 함수에서 처리할 현재 값
- index : 콜백 함수에서 처리할 현재 인덱스
- array : some 함수를 호출한 배열
every
arr.every(callbackFunction: (value, index, array), thisArg?)
- Return 값 : 콜백 함수를 실행해서 나온 boolean 값(true or false)
- callbackFunction : 배열의 각 값을 검사하는 함수
- value : 콜백 함수에서 처리할 현재 값
- index : 콜백 함수에서 처리할 현재 인덱스
- array : every 함수를 호출한 배열
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),
];
// Student의 score가 50점 미만인가?
const result = students.some(student => student.score < 50);
console.log(result);
const result2 = students.every(student => student.score < 50);
console.log(result2)
}
결과 :
true
false
some 함수는 주어진 값들 중 어느 하나라도 참이면 true지만 every 함수는 모든 값이 다 참이어야만 true가 출력된다.
10. Array.reduce()
이전의 값을 연속적으로 더해나간다.
arr.reduce(callbackFunction: (prev, curr ,currIndex ,array), initialValue)
- Return 값 : 누적하여 계산한 결과 값
- callbackFunction : 배열의 각 값을 실행할 함수
- prev : 콜백 함수를 실행하여 나온 이전 반환값
- curr : 콜백 함수에서 처리할 현재 값
- currIndex : 처리할 현재 요소의 인덱스
- array : reduce 함수를 호출한 배열
- initialValue : 콜백 함수에서 최초로 호출할 때 처음으로 시작할 값
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),
];
// students의 평균값을 구하여라.
const result = students.reduce((prev, curr) => prev + curr.score, 0);
console.log(result / students.length);
}
결과 :
73.8
Author And Source
이 문제에 관하여(TIL18 - JavaScript 배열 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@silviaoh/TIL18-JavaScript-배열과-관련된-API저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)