javascript - 将嵌套数组中的值设置为 null 的功能方法

标签 javascript functional-programming

我想遍历下面的两个对象,如果在 start_timestamp 和 end_timestamp 之间没有对所选日期时间进行分配,则布局对象中的值 table.translateY、table.translateX 和 masterId 应设置为 null。

我怎样才能做到这一点?

我的尝试:

    layouts = layouts.forEach(function(layout){
        assignments.forEach(function(assignment){
            layout.tables.map(function(table){
              if (table.id !== assignment.tableId && assignment.start_timestamp >= timestamp && !assignment.end_timestamp < timestamp) {
                table.translateY = null;
                table.translateX = null;
                table.masterId = null;
              }
          });
      })
    });

我的布局对象看起来像这样:

{  
      "id":31,
      "stationId":31,
      "tables":[  
         {  
            "id":652,
            "number":"040",
            "x":1285,
            "y":527,
            "length":98,
            "breadth":69,
            "rotation":0,
            "shape":"rectangle",
            "translateX":0,
            "translateY":0,
            "masterId":null,
            "seats":4
         },
         {
         ...
         }
       ]
}

我的赋值对象是这样的:

[ Assignment {
    id: 6798,
    tableId: 685,
    guestGroupId: 60725,
    start_timestamp: undefined,
    end_timestamp: undefined },
  Assignment {...}
]

最佳答案

想法是在您的 map 中进行分配查找 这真的是唯一的方法。您不希望成为不同数据集的嵌套循环。

const newLayouts = layouts.map(layout =>
  layout.tables.map(table => {
    const assignment = assignments.find(({ id }) => id === table.id);
    if (
      assignment &&
      assignment.start_timestamp >= timestamp &&
      !assignment.end_timestamp < timestamp
    ) {
      return {
        ...table,
        translateY: null,
        translateX: null,
        masterId: null
      };
    }
    // Else
    return table;
  })
);

关于javascript - 将嵌套数组中的值设置为 null 的功能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034816/

相关文章:

javascript - 如果数组长度为 1,则对数组进行操作将返回 NaN

r - purrr 中的部分难题

swift - 在 Swift 中将成员函数分配给成员变量

javascript - 如何在 JQuery 中使用 foreach 循环

java - Java 的Optional 上的get() 危险吗?

functional-programming - 如何在F#中使用纯函数实现数据库能力方法?

javascript - 自动/电影滚动文本框效果 CSS/JS

javascript - 如何使用 Node 将 3GP 文件转换为 MP3?

javascript - app.use Express 路由中缺少参数

javascript - "Cannot read property ' findDOMNode ' of undefined"使用 React-widgets 时