javascript - 以功能方式从对象数组中的对象数组返回值

标签 javascript

我有一个包含对象的数组,该数组包含一个也包含对象的数组。当对象数组中的数组中的对象包含值 111 时,我想返回第一个数组中的整个对象。

下面的代码显示了第一个数组中的一个示例对象。

[  
   {  
      "id":11,
      "bookingNumber":"1210",
      "arrivalDate":"2018-09-17T22:00:00.000Z",
      "departureDate":"2019-09-18T22:00:00.000Z",
      "customerId":2,
      "fields":[
          {  
             "value":"111",
             "display_name":"RoomNumber"
          },
          {  
             "value":"otherValue",
             "display_name":"PersonInfo"
          }
      ]
    }
 ]

我的尝试返回未定义:

const guest = guestGroups.forEach(function (guestGroup) {
             guestGroup.fields.filter(function (fields) {
                  if (fields.value === roomNumber)
                  return guestGroup;
            });
        });

最佳答案

您需要检查 fields 数组中的一些 项是否具有您要查找的:

const valueToFind = '111';
const arr=[{"id":11,"bookingNumber":"1210","arrivalDate":"2018-09-17T22:00:00.000Z","departureDate":"2019-09-18T22:00:00.000Z","customerId":2,"fields":[{"value":"111","display_name":"RoomNumber"},{"value":"otherValue","display_name":"PersonInfo"}]}]

const foundObject = arr.find(
  ({ fields }) => fields.some(
    ({ value }) => value ===  valueToFind
  )
);
console.log(foundObject);

关于javascript - 以功能方式从对象数组中的对象数组返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920143/

相关文章:

javascript - 谷歌地图未捕获类型错误 : Cannot read property 'LatLng' of undefined

javascript - Highcharts:在一系列直方图中为图例添加不同的颜色

javascript - 如何在 JS 文件中使用导出的结构?

javascript - 更改标签的属性值

javascript - 从 AJAX 调用 Controller 操作而不重定向用户

javascript - 概念 - 单击链接时保持对当前页面的关注?

javascript - stackoverflow 如何实现标题框,以便在您键入时隐藏文本?

javascript - AngularJS - ngModel 无法分配给函数

javascript - Angular 模板中的下划线词

javascript - Promise.map() 进度指示器