如何根据secondArray字段过滤data数组,保留符合条件的元素?
实现数组过滤:保留指定字段至少一个值为1的元素
核心实现代码
针对你的需求,可以用JavaScript的Array.filter()和Array.some()方法组合实现,代码如下:
const data = [ { "is_new":1, "is_delayed":0, "is_active":1, "name":"london" }, { "is_new":1, "is_delayed":1, "is_active":0, "name":"paris" }, { "is_new":1, "is_delayed":0, "is_active":1, "name":"India" } ]; const secondArray = ["is_new","is_delayed","is_active"]; // 过滤逻辑 const filteredData = data.filter(item => { // 检查secondArray中的字段是否至少有一个值为1 return secondArray.some(field => item[field] === 1); }); console.log(filteredData);
代码说明
filter():遍历data数组,逐个判断元素是否符合条件,符合条件的元素会被加入结果数组some():遍历secondArray中的每个字段名,只要当前元素的任意一个指定字段值等于1,就返回true,该元素会被保留
不同场景示例
- 当
secondArray = ["is_delayed"]时,只有name为paris的元素会被保留(它的is_delayed值为1) - 当
secondArray = ["is_active"]时,london和India会被保留 - 当
secondArray包含三个字段时,所有元素都会被保留(每个元素至少有一个字段值为1)
内容的提问来源于stack exchange,提问作者Rosy
相关产品推荐
相关产品推荐

