React.js中如何按对象公共属性筛选数组生成符合要求的新数组
实现方案
JavaScript 内置的 Array.prototype.filter() 方法完全可以满足你的需求,这个方法会创建一个新数组,其包含所有通过你指定的测试函数的元素。
示例代码
// 原数组 const originArray = [ {name:"Bruce wayne", age:42, DOA:true}, {name: "Dick grayson", age:28, DOA:true}, {name:"Jason todd", age:24, DOA:false} ]; // 过滤得到DOA为true的元素组成的新数组 const filteredArray = originArray.filter(item => item.DOA);
如果需要兼容不支持箭头函数的旧JS环境,也可以写成普通函数形式:
const filteredArray = originArray.filter(function(item) { return item.DOA; });
补充说明
filter方法不会修改原数组,只会返回符合条件的新数组,符合不可变操作的习惯- 因为
DOA本身是布尔类型,所以可以直接写item.DOA作为判断条件,和item.DOA === true效果完全一致 - 如果有额外过滤需求,直接在返回的判断语句中叠加对应逻辑即可
内容的提问来源于stack exchange,提问作者geo
相关产品推荐
相关产品推荐

