Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查对象数组以查看特定属性是否与条件匹配_Javascript_Ecmascript 6 - Fatal编程技术网

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';
}