arr.filter() 메서드는 내장 된 메서드로, 이 메서드는 주어진 기준과 조건을 따르거나 통과하는 요소로 새 배열을 만든다.
array.filter(callback(ele[,idx[,arr]])[,thisValue])
매개변수 : 이 메서드는 위에서 언급하고 아래에 설명된 대로 5개의 매개변수를 허용한다.
/*이 예에서 filter() method는 canVote() 함수로 검사한 조건을 충족하는 요소로만 구성된 새 배열을 만든다.*/
function canVote(Age){
return age >= 18;
}
function func() {
let filtered = [24, 33, 16, 40].filter(canVote);
document.write(filtered);
}
func();
/// === [24, 33, 40]
/*이 예에서 filter() method는 isPositive() 함수로 검사한 조건을 충족하는 요소로만 구성된 새 배열을 만든다.*/
function isPositive(value){
return value >0;
}
let filtered = [112, 52, 0, -1, 944].filter(isPositive);
prin(filtered)
//=== [112,52,944]
/*이 예에서 filter() method는 isEven() 함수로 검사한 조건을 충족하는 요소로만 구성된 새 배열을 만든다.*/
function isEven(value){
return value % 2 == 0;
}
let filtered = [11, 98, 31, 23, 944].filter(isEven);
print(filtered);
//=== [98,944]
ES6.ver
/*길이가 5보다 큰 배열의 모든 단어를 필터링 한다.*/
let words = ["hi","hello","hey","apple","watermelon","lemon","javascript"];
let result = words.filter(word => word.length >5);
console.log(result);
// === ["watermelon","javascript"]
let jsonarr = [
{
id: 1,
name: "joe"
},
{
id: -19,
name: "john"
},
{
id: 20,
name: "james"
},
{
id: 25,
name: "jack"
},
{
id: -10,
name: "joseph"
},
{
id: "not a number",
name: "jimmy"
},
{
id: null,
name: "jeff"
},
]
let result = jsonarr.filter(user => user.id >0);
console.log(result);
// === [{"id":1,"name":"joe"},{"id":20,"name":"james"}, {"id":25,"name":"jack"}]
원문 출처 | https://www.geeksforgeeks.org/es6-array-filter-method/