Javascript 检查对象数组以查看特定属性是否与条件匹配
我有数据,其中一个Javascript 检查对象数组以查看特定属性是否与条件匹配,javascript,ecmascript-6,Javascript,Ecmascript 6,我有数据,其中一个报告有一个费用的数组,每个费用都有一个返回的数组。我想检查每个返回值,看看它是否满足某个条件。这项工作: for (var expense of vm.report.Expenses) { if (text === "Process") { break; } if (expense.Returns.some(x => x.ExpenseReportId === vm.report.Id)) { text = "Process"; } }; 然而,这感
报告
有一个费用的数组
,每个费用
都有一个返回的数组
。我想检查每个返回值
,看看它是否满足某个条件。这项工作:
for (var expense of vm.report.Expenses) {
if (text === "Process") { break; }
if (expense.Returns.some(x => x.ExpenseReportId === vm.report.Id)) {
text = "Process";
}
};
然而,这感觉像是一种古老的做事方式。我试过concat
,map
等,但似乎没能得到它。我只想要这样的东西:
if (report.Expenses.Returns.some(x => ...))
我不能这样做,因为
费用
是一个数组,返回值也是一个数组。如何轻松检查报表的所有费用属性上的所有返回属性?您可以使用嵌套的数组。some()
。当内部some中的谓词返回true
时,两个循环都将结束,并返回true
示例(未测试):
你能发布你正在使用的JSON数据结构吗?@skellertor我开始输入它,结果变得一团糟。基本上,一份报告有很多费用,每个费用都有很多回报。我想在每次报税表上核对一处房产。
if(vm.report.Expenses.some(e =>
e.Returns.some(x => x.ExpenseReportId === vm.report.Id)
)) {
text = 'Process';
}