node.js - nodejs我如何过滤对象数组
问题描述
我有一个像这样的对象的数组列表:
[
[
{
address: 'x-x-x-x',
listed: false
}
],
[
{
address: 'x-x-x-x',
listed: false
}
],
[
{
address: 'x-x-x-x',
listed: false
}
],
[
{
address: 'x-x-x-x',
listed: false
}
],
[
{
address: 'x-x-x-x',
listed: false
}
],
[
{
address: 'x-x-x-x',
listed: true
}
]
]
现在我想过滤列出的所有对象,但它不起作用,我尝试了库 lodash,我尝试了函数过滤器。但它不起作用。我做错了什么?
results = await Promise.all(promiseArr);
const data = lodash.filter(results, {
listed: true
});
console.log(results);
解决方案
不确定内部数组中是否会有多个元素,但这无论如何都会起作用。
const yourArray = [
[
{
address: 'x-x-x-x',
listed: false
},
{
address: '1-x-x-x',
listed: true
}
],
[
{
address: '2-x-x-x',
listed: true
}
]
]
const newArray = yourArray.reduce((previousValue, currentValue) => {
const listedTrueObjects = currentValue.filter(obj => {
return obj.listed === true
})
previousValue = previousValue.concat(listedTrueObjects)
return previousValue
}, [])
console.log(newArray)
编辑:没有看到你的低代码......这应该工作。
results = await Promise.all(promiseArr);
const data = results.reduce((previousValue, currentValue) => {
const listedTrueObjects = currentValue.filter(obj => {
return obj.listed === true
})
previousValue = previousValue.concat(listedTrueObjects)
return previousValue
}, [])
console.log(results);
推荐阅读
- c# - WinForms ComboBox 检测是否选择了项目 - 即使项目相同
- sql-server - Sql-server 2008R2 数据库中只有一张表在使用 ADODB ODBC 连接访问时工作缓慢
- reactjs - 如何在 React Big Calendar 中将事件时间格式更改为 24 小时
- reactjs - React-Jest 单元测试影响状态的外部模块方法
- java - 如何在springboot中访问GCS存储桶?
- unity3d - 重新加载同一场景时无法加载应用内购买
- terraform - 从 Terraform 创建 AWS_ALB
- r - 函数索引数据集和感兴趣的变量
- grep - Mocha 中的嵌套 grep 选项(或另一种选择恰好一个测试的方式)
- r - 如何从 sql 获取数据仅限于 R 中数据框中的行