const array = [1, 2, 3, 4, 5];
const array2 = [1, 2, 3, 4, 5];
array.slice(2);
array.splice(2);
console.log(array + " " + "slice");
console.log(array2 + " " + "splice");
String -> array로 바꿔주기
const fruits = "🍎, 🥝, 🍌, 🍒";
const result = fruits.split(",");
console.log(result);
배열의 요소를 돌면서 callback 함수를 통과한 요소만 통과시켜 리턴한다!
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),
];
const result = students.find((student) => {
//배열의 요소들을 돌면서 콜백을 통과한 요소만 리턴한다.
return student.score === 90;
});
console.log(result);
filter도 배열의 요소들을 돌면서 콜백함수의 조건이 true인 요소를 반환한다.
const result = students.filter((student) => {
//조건을 충족하는 배열을 return한다.
return student.enrolled;
});
그렇다면 filter()와 find()의 차이점은 무엇일까?
배열이 callback 함수를 거쳐 '새로운 배열을 return 한다'
const result = students.map((student) => { // 배열이 함수를 거쳐 새로운 배열을 return
return student.score;
});
배열의 각 요소들을 순회하며 어느 하나라도 true라면 T/F 반환
모든 요소가 충족되어야 True
const result = students.some((student) => {
//some은 배열의 각각의 요소들이 콜백 함수를 통과하는지 여부를 check (하나라도 충족되면 true)
console.clear();
return student.score < 50;
});
const result2 = students.every((student) => {
// every는 모든 요소가 충족되어야 true
return student.score < 50;
});
console.log(result);
console.log(result2);
누적이라 생각하면 된다! => 이해하기 조금 어려웠다...ㅠㅡ
reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
파라미터로 현재값(currentValue)을 리턴해 이전값(previousValue)에 들어간다.
이전값(previousValue)과 현재값(currentValue)값이 연산되고 연산된 값이 return
연산된 return값 다시 이전값(previousValue)으로 이동, 현재값(currentValue)과 연산하고 연산된값 return 반복
또한 맨 처음 initialValue값을 지정해 줄 수 있다!( 첫번째 currentvalue 값과 연산될 previousValue 지정해 주는 것! )
//평균 구하기
const result = students.reduce((prev, curr) => {
//reduce는 누적이라 생각하면 된다.
return prev + curr.score; //이전에 return된 값이 prev로 가고, curr값과 연산이 되면서 계속 반복
}, 0); //초기 prev값을 설정해 줄 수 있다.
console.log(result / students.length);