배열 안의 모든 요소를 반복적으로 호출하고 싶을 때 사용한다.
const heros = ['아이언맨', '캡틴 아메리카', '토르', '닥터 스트레인지'];
// 익명함수를 매개변수로 넣어주고,
// 익명함수의 매개변수에는 heros.foreach를 통해 가져온 hero를 넣어줌
heros.forEach(function (hero) {
console.log(hero);
});
//화살표 함수 이용하기
heros.forEach(hero => {
console.log(hero);
});
배열 안의 모든 원소를 다른 형태로 변환하고 싶을 때 사용한다.
const array = [1,2,3,4,5,6,7,8];
// square는 화살표 함수로 n을 받으면 n*n을 리턴한다.
const square = n => n*n;
//array.map으로 각 요소에 접근해서 square함수를 적용해준다.
const squared = array.map(square);
//따로 함수를 정의해주지 않고, map의 매개변수로 주어도 된다.
const squared2 = array.map(n => n*n);
console.log(squared);
// 출력 : [1, 4, 9, 16, 25, 36, 49, 64]
console.log(squared2);
// 출력 : [1, 4, 9, 16, 25, 36, 49, 64]
배열의 요소 중 무언가를 찾고 싶을 때 사용하는 함수들이다.
const heros = ['원더우먼', '닥터 스트레인지', '아이언맨'];
const index = heros.indexOf('아이언맨');
console.log(index);
//출력 : 2
find : 찾고 싶은 요소의 객체를 반환해준다.
주의할 점은 find의 매개변수가 ⭐️함수 라는 것이다.
조건(함수)에 맞는 요소가 반환된다.
const todos = [
{
id: 1,
text: '자바스크립트 입문',
done: true
},
{
id: 2,
text: '함수 배우기',
done: true
},
{
id: 3,
text: '리액트 배우기',
done: false
},
{
id: 4,
text: '객체와 배열 배우기',
done: true
}
];
const find = todos.find(todo => todo.id === 3);
console.log(find);
//출력 : {id: 3, text: "리액트 배우기", done: false}
const todos = [
{
id: 1,
text: '자바스크립트 입문',
done: true
},
{
id: 2,
text: '함수 배우기',
done: true
},
{
id: 3,
text: '리액트 배우기',
done: false
},
{
id: 4,
text: '객체와 배열 배우기',
done: true
}
];
const index = todos.findIndex(todo => todo.id===3);
console.log(index);
// 출력 : 2
const todos = [
{
id: 1,
text: '자바스크립트 입문',
done: true
},
{
id: 2,
text: '함수 배우기',
done: true
},
{
id: 3,
text: '리액트 배우기',
done: false
},
{
id: 4,
text: '객체와 배열 배우기',
done: true
}
];
const findall = todos.filter(todo => todo.done === true);
console.log(findall);
// 출력:
splice : 배열에서 특정 지점을 제외시키고 싶을 때 사용한다.
splice(index, n)
: index부터 n개를 삭제하겠다.
const numbers = [1, 2, 3, 4];
console.log("splice:", numbers.splice(1, 2));
//1번 인덱스에서 2개 삭제하겠다
//출력 : splice: [2,3]
console.log("numbers:", numbers);
//출력 : numbers: [1,4]
slice : 배열에서 특정 지점 전까지 가져오고 싶을 때 사용한다.
slice(start, end+1)
: start 인덱스부터 end 인덱스까지 배열을 가져온다.
const numbers = [1, 2, 3, 4];
console.log("slice:", numbers.slice(1, 3));
//1번 인덱스부터 2번 인덱스까지 가져온다.
// 출력 : slice: [2,]
console.log("numbers:", numbers);
// 출력 : numbers: [1,2,3,4]
const numbers = [1, 2, 3, 4];
const val = numbers.shift();
console.log(val);
//출력: 1
console.log(numbers);
//출력: [2,3,4]
const numbers = [1, 2, 3, 4];
const val = numbers.pop();
console.log(val);
//출력: 4
console.log(numbers);
//출력: [1,2,3]
const numbers = [1, 2, 3, 4];
const val = numbers.unshift(5);
console.log("unshift:",val);
//출력: 5
console.log(numbers);
//출력: [5,1,2,3,4]
const numbers = [1, 2, 3, 4];
const val = numbers.push(5);
console.log("push:", val);
//출력: 5
console.log("numbers",numbers);
//출력: [1,2,3,4,5]
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 7];
const arr3 = arr1.concat(arr2);
console.log("concat:",arr3);
//출력: concat: [1,2,3,4,5,6,7]
console.log("arr1+arr2:",arr1 + arr2);
//출력: arr1+arr2: 1,2,3,45,6,7
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 7];
const arr3 = [...arr1, ...arr2];
console.log("spread:", arr3);
//출력: spread: [1, 2, 3, 4, 5, 6, 7]
const arr1 = [1, 2, 3, 4];
const arr3 = arr1.join();
console.log(arr3);
//출력 : 1,2,3,4
// join의 매개변수는 숫자 사이의 연결 요소가 된다.
const arr4 = arr1.join(" * ");
console.log(arr4);
//출력 : 1 * 2 * 3 * 4
reduce((accumulator,current,index,array) => 계산식, accumulator 초기값)
accumulator
: 누적된 값, current
: 리스트의 각 요소가 한개씩 가져와짐index
: current의 인덱스 값 ,array
: reduce의 대상 배열 = 자기 자신// [모든 배열의 합 구하기]
const numbers = [1, 2, 3, 4, 5];
//reduce((accumulator, current) => 계산식, accumulator 초기값)
const sum = numbers.reduce((accumulator, current) => accumulator + current , 0);
console.log(sum);
//[배열의 평균 구하기]
const numbers = [1, 2, 3, 4, 5];
const avg = numbers.reduce((accumulator, current,index,array) => {
if (index===numbers.length-1){
return (accumulator + current) / array.length;
}
return accumulator + current;
}, 0);
console.log(avg);
//[배열 속 각 알파벳 개수 세기]
const alphabets = ['a','a','a','b','c','c','d','e'];
const count = alphabets.reduce((acc,current) => {
// acc객체에 current 값이 있으면~
if (acc[current]){
acc[current]+=1;
}
else{
acc[current]=1;
}
return acc;
//acc의 초기값을 빈 객체로 선언해줌
},{});
console.log(count);
배열 안에 요소가 있는지 확인해서 있으면 true, 없으면 false를 반환해준다.
in
과 같은 역할이다.function isAnimal(text) {
const animal = ["고양이", "개", "거북이", "너구리"];
return animal.includes(text);
}
// 이렇게 화살표 함수로 간단하게 나타낼 수도 있다.
const isAnimal2 = (text) => ["고양이", "개", "거북이", "너구리"].includes(text);
console.log(isAnimal("개"));
//출력: true
console.log(isAnimal2("냐옹이"));
//출력: false