【问题标题】:Filtering Array of Objects having 2 of its items as reference in angular过滤具有 2 个项目作为角度参考的对象数组
【发布时间】:2020-09-18 21:38:03
【问题描述】:

Good Day Developers,我有这 2 个数组

let arrayOfBookings=[
 {restaurantId: 1, turnName: "10:00_am"},
 {restaurantId: 1, turnName: "11:00_am"},
 {restaurantId: 2, turnName: "11:00_am"}
];

let restaurantSelectedTurns=[
 {restaurantId: 1, turnName: "10:00_am"},
 {restaurantId: 1, turnName: "11:00_am"},
 {restaurantId: 1, turnName: "12:00_am"},
 {restaurantId: 1, turnName: "01:00_pm"}
];

首先要记住每个对象(restaurantId 和 turnName)的项目在哪里 比较的两个元素的 restaurantId 相等,则可以检查 turnName 是否不相等。 如果是这种情况,那么我会将该对象推送到一个新的数组容器中。 因此请记住我设置的逻辑

...some variable called noRepeated:[]=[];

restaurantSelectedTurns.forEach((turn) => {
            arrayOfBookings.forEach((booking) => {
              if (turn.restaurantId == booking.restaurantId) {
                if (turn.turnName != booking.turnName) {
                  this.noRepeated.push(turn);
                }
              }
             

            });
            console.log(this.noRepeated);
          });

但是由于任何原因,当我记录不重复的结果时,我得到了这个


 {restaurantId: 1, turnName: "10:00_am"},
 {restaurantId: 1, turnName: "11:00_am"},
 {restaurantId: 1, turnName: "12:00_am"},
 {restaurantId: 1, turnName: "12:00_am"},
 {restaurantId: 1, turnName: "01:00_pm"},
 {restaurantId: 1, turnName: "01:00_pm"},

而不是

{restaurantId: 1, turnName: "12:00_am"},
 {restaurantId: 1, turnName: "01:00_pm"},

此逻辑使用 angular 。 提前谢谢!!!!

【问题讨论】:

    标签: javascript arrays angular


    【解决方案1】:
    1. 代码中的第一个错误是迭代 包含更多项目的数组。
    2. 第二个是你不需要 迭代 2 个表并在其中创建一个条件,不考虑 获得良好性能的解决方案。

    所以我试着为你做一个简单的解决方案:

    const newArrayOfRestaurants = [];
    for (const item of arrayOfBookings) {
        if (restaurantSelectedTurns.some(elt => elt.restaurantId === item.restaurantId && elt.turnName === item.turnName)){
            newArrayOfRestaurants.push(item);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多