Problem
- You will create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out.
- 문자열을 필터링해서, 정수로 된 새 배열을 반환한다.
Solution 01
function filterArray(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (typeof arr[i] === 'number') {
result.push(arr[i]);
}
}
return result;
}
filterArray(['a', 'b', 1, 2]); // [1, 2]
filterArray([3, 4, 'c', 'd']); // [3, 4]
typeof
연산자: 변수 또는 표현식의 타입을 반환한다.push()
: 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.
Solution 02
function filterArray(arr) {
return arr.filter(function(i) {
return typeof i === 'number';
});
}
filterArray(['a', 'b', 1, 2]); // [1, 2]
filterArray([3, 4, 'c', 'd']); // [3, 4]
filter()
: 테스트를 통과한 배열의 각 값을 모아, 새 배열로 반환한다.
Solution 03
function filterArray(arr) {
return arr.filter(i => typeof i === 'number');
}
filterArray(['a', 'b', 1, 2]); // [1, 2]
filterArray([3, 4, 'c', 'd']); // [3, 4]
Solution 04
function filterArray(arr) {
return arr.filter(i => typeof i !== 'string');
}
filterArray(['a', 'b', 1, 2]); // [1, 2]
filterArray([3, 4, 'c', 'd']); // [3, 4]