JavaScript Array Method 2
02 Mar 2019Array.prototype.some()
some()
는 배열의 어떤 요소라도 주어진 함수를 통과하면 true를 반환한다.
예제에서는 food에 burger가 포함되어 있지 않기 때문에 false를 반환한다.
const food = ['bread', 'latte', 'sushi', 'pasta'];
const hasBurger = food.some(val => val === 'burger');
if (hasBurger) {
console.log('I love 🍔!');
} else {
console.log('You need 🍔');
}
// You need 🍔
배열에 object를 넣어서 pets라는 배열에 type이 cat인 요소가 하나라도 있으면 true를 반환한다.
const pets = [
{ name : 'honggu', type : 'dog' },
{ name : 'ssong', type : 'cat' },
{ name : 'donggu', type : 'dog' }
]
const hasCat = pets.some(pet => pet.type === 'cat');
if (hasCat) {
console.log('Meow 🐱');
}
// Meow 🐱
Array.prototype.every()
every()
에서는 some()
가 다르게 배열의 모든 요소가 주어진 함수를 통과해야만 true를 반환한다.
예제에서는 numbers에 있는 숫자들이 모두 짝수이면 true를 그렇지 않으면 false를 반환한다.
const numbers = [2, 4, 6, 8, 10];
const isEvenNumber = numbers.every(number => number % 2 === 0);
console.log(isEvenNumber); // true
Array.prototype.find()
find()
는 판별 함수를 충족하는 첫 번째 요소를 반환하고 없다면 undefined를 반환한다.
예제에서는 like에 type이 dessert인 요소가 두 개가 있지만 console.log(likeDessert)
의 결과로 그 중 첫 번째 요소만 반환한다. console.log(likeEspresso)
를 할 경우 type이 espresso인 요소가 없으므로 undefined를 반환한다.
const like = [
{ name : "cat", type : "animal"},
{ name : "ice cream", type : "dessert"},
{ name : "latte", type : "coffee"},
{ name : "Ghibli", type : "animation"},
{ name : "macaron", type : "dessert"}
];
const likeDessert = like.find(val => val.type === 'dessert');
const likeEspresso = like.find(val => val.type === 'espresso');
console.log(likeDessert); // {name: "ice cream", type: "dessert"}
console.log(likeEspresso); // undefined
Array.prototype.findIndex()
findIndex()
는 판별 함수를 충족하는 배열의 첫 번째 요소의 인덱스를 반환하며 없을 경우 -1을 반환한다.
예제에서는 exam에서 grade의 값이 60보다 작은 객체가 존재하므로 그 인덱스인 4를 반환한다.
const exam = [
{ subject: 'Korean', grade: 95 },
{ subject: 'English', grade: 80 },
{ subject: 'History', grade: 73 },
{ subject: 'Math', grade: 86 },
{ subject: 'Science', grade: 53 }
];
const underSixty = exam.findIndex(val => val.grade < 60);
console.log(underSixty); // 4
console.log(exam[underSixty]); // {subject: "Science", grade: 53}