var animales = [
{name : 'fluffykins', species : 'rabbit'},
{name : 'caro', species : 'dog'},
{name : 'hamilton', species : 'dog'},
{name : 'harold', species : 'fish'},
{name : 'ursula', species : 'cat'},
{name : 'jimmy', species : 'fish'}
]
// 需求:找出species是dog的元素
// 一、以下是for循环写法
// var dogs =[];
// for(var i=0; i< animales.length; i++){
// if(animales[i].species === 'dog'){
// dogs.push(animales[i])
// dogs.push(animales[i].name + ':' + animales[i].species)
// }
// }
// 二、以下是filter的写法
var dogs = animales.filter(function(animale){
return animale.species === 'dog'
});
console.log(dogs)
- filter简介
返回数组中的满足回调函数中指定的条件的元素。
- 语法
array1.filter(callbackfn[, thisArg])
- 参数
- array1 必需。一个数组对象。
- callbackfn 必需。一个接受最多三个参数的函数。对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次。
- thisArg 可选。可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。
- 返回值
一个包含回调函数为其返回 true 的所有值的新数组。如果回调函数为 array1 的所有元素返回 false,则新数组的长度为 0。
网友评论