JavaScript Array Method 1
28 Feb 2019Array.prototype.filter()
filter()
는 주어진 함수를 통과하는 요소를 새로운 배열로 만들어 반환한다.
예제에서는 filter를 통해 기존 numbers에 있는 숫자 중 홀수만 걸러서 새로운 배열을 만든다.
const numbers = [1, 3, 4, 2, 9, 7, 8];
const oddNumbers = numbers.filter(number => number %2 === 1);
console.log(oddNumbers);
// [1, 3, 9, 7]
아래 예제에서는 continent가 ‘A’로 시작하는 결과만 새로운 배열로 만들었다.
const countries = [
{name : 'South Korea', continent : 'Asia'},
{name : 'Canada', continent : 'North America'},
{name : 'Thailand', continent : 'Asia'},
{name : 'Morocco', continent : 'Africa'},
{name : 'Venezuela', continent : 'South America'},
{name : 'United Kingdom', continent : 'Europe'},
{name : 'Greece', continent : 'Europe'},
]
const continentA = countries.filter(country => country.continent.substr(0,1) === 'A');
console.log(continentA);
/*
[ {name: "South Korea", continent: "Asia"},
{name: "Thailand", continent: "Asia"},
{name: "Morocco", continent: "Africa"}
]
*/
Array.prototype.map()
map()
에서는 주어진 함수의 대한 배열의 모든 요소의 결과를 새로운 배열로 반환한다.
예제에서는 numbers에 있는 숫자들의 거듭제곱을 새로운 배열로 만든다.
const numbers = [1, 2, 3, 4, 5];
const square = numbers.map(number => Math.pow(number, 2));
console.log(square);
// [1, 4, 9, 16, 26]
아래 예제는 각 객체의 firstName과 lastName을 합쳐 새로운 배열을 만든다.
const people = [
{ firstName : 'Jon', lastName : 'Snow' },
{ firstName : 'Tyrion', lastName : 'Lannister' },
{ firstName : 'Arya', lastName : 'Stark' },
{ firstName : 'Daenerys', lastName : 'Targaryen' }
];
const names = people.map(person => `${person.firstName} ${person.lastName}`);
console.log(names);
// ["Jon Snow", "Tyrion Lannister", "Arya Stark", "Daenerys Targaryen"]
Array.prototype.sort()
sort()
은 배열의 요소를 정렬한 후 배열로 반환하며 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다.
const numbers = [2, 4, 6, 23, 1, 7];
console.log(numbers.sort());
// [1, 2, 23, 4, 6, 7]
// 반환값이 0보다 작으면 a를 먼저 정렬
const ascending = numbers.sort((a, b) => a - b);
console.log(ascending);
// [1, 2, 4, 6, 7, 23]
// 반환값이 0보다 크면 b를 먼저 정렬
const descending = numbers.sort((a, b) => b - a);
console.log(descending);
// [23, 7, 6, 4, 2, 1]