javascript - 如何在嵌套数组javascript中过滤掉具有不同键的对象
问题描述
我想知道如何使用 javascript 过滤掉嵌套数组中的对象。我有 obj sample_obj
,其中有不同的键,我想在 javascript 中使用 payin=="bank" && payout=="bank" 进行过滤。
var result= sample_obj.filter((e)=>{
e.payin=="bank" && e.payout=="bank"
})
console.log("Result:", result);
//inputs
var sample_obj = [{
obj1: [{
id: "IN",
amount: 100,
payin: "bank",
payout: "bank"
},{
id: "IN",
amount: 200,
payin: "credit",
payout: "bank"
}],
obj2: [{
id: "TR",
amount: 120,
payin: "bank",
payout: "bank"
},{
id: "TR",
amount: 250,
payin: "debit",
payout: "bank"
}]
}]
Output:
Result:[{
id: "IN",
amount: 100,
payin: "bank",
payout: "bank"
}, {id: "TR",
amount: 120,
payin: "bank",
payout: "bank"}]
解决方案
因为你有函数体{}
,所以你需要使用return
. 由于您的数据结构,您还需要更改一些内容:
var sample_obj = [{
obj1: [{
id: "IN",
amount: 100,
payin: "bank",
payout: "bank"
},{
id: "IN",
amount: 200,
payin: "credit",
payout: "bank"
}],
obj2: [{
id: "TR",
amount: 120,
payin: "bank",
payout: "bank"
},{
id: "TR",
amount: 250,
payin: "debit",
payout: "bank"
}]
}]
var result= Object.values(sample_obj[0]).
reduce((acc, curr) => acc.concat(curr)).filter((e)=>{
return e.payin=="bank" && e.payout=="bank"
});
console.log("Result:", result);
推荐阅读
- apache - 如何为包含客户端和服务器代码的项目设置 nginx 重写规则?
- kotlin - 从 Kotlin Jar 执行 TestNG xml
- node.js - 尝试发送 json 对象时,fetch api 如何与 express 一起使用
- ruby-on-rails - RoR API 如何使用帖子进行关联
- swift - iOS CallKit:CXProviderConfiguration localizeName 已弃用
- python - 寻找修复算法的方法。使用动态规划实现组合和 II
- macos - 运行 cron 作业时执行 Fastlane 命令缺少 Gem
- android - 使用 Handler 删除 Firebase DatabaseReference 侦听器的替代方法是什么?
- javascript - ES6提取具有id数组的对象的数组过滤数组
- apache-kafka - Kafka - 在错误主题中重新驱动事件