js filter()用法小结

/* 
filter()
对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,
该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的
非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的
数组也不会包含这些元素。

回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
*/


// 原始数据
var arrs = [
  {
    name: "tom",
    age: 18,
    sex: "boy"
  },
  {
    name: "jim",
    age: 19,
    sex: "boy"
  },
  {
    name: "anchor",
    age: 20,
    sex: "boy"
  },
  {
    name: "lucy",
    age: 18,
    sex: "girl"
  },
  {
    name: "lily",
    age: 19,
    sex: "girl"
  },
  {
    name: "andy",
    age: 20,
    sex: "girl"
  }
];

// 过滤条件
var limits = {
  name: 'tom',
  age: 18,
  sex: 'boy'
};

// filter回调函数
function dofilter(element, index, array) {
  if(limits.name && limits.name != element.name){ // 姓名过滤
    return false;
  }else if(limits.age && limits.age != element.age){ // 年龄过滤
    return false;
  }else if(limits.sex && limits.sex != element.sex){ // 性别过滤
    return false;
  }
  return true;
}

/* test */
var filtered = arrs.filter(dofilter);
console.log(filtered);

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值