我正在尝试比较很多数组。 我有一个像这样的对象数组:

cart = [0]{products:[ id : 10, name: 'bla' ], ingredient: [id: 20, name: 'bla' count : 0]}
       [1]{products:[ id : 10, name: 'bla' ], ingredient: [id: 20, name: 'bla' count : 0]}

我想比较ingredients array ,如果它是ingredients array的相同对象,那么我想删除cart array的整行并将count加1。

我在网络上看到了解决方案,但它们只是与以前的索引进行比较。 如果我有3个对象,我也想比较第一个和第三个对象。

我该怎么做?

#1楼 票数:0

function removeDuplicates(cart) {
  const existingIngredients = [];
  return cart.filter(row => {
    // using lodash isEqual in the next line, but you can write your own comparison function
    if(existingIngredients.some(existing => _.isEqual(row.ingredients, existing))) {
      count++;
      return false; // filter out this row
    } else {
      existingIngredients.push(row.ingredients);
      return true;
    }
  })
}

我在这里使用一种非常粗糙的方法,将现有成分存储在一个数组中,但是您明白了。

  ask by Alexy Riche translate from so

未解决问题?本站智能推荐:

3回复

比较两个对象打字稿并检查是否有三个或更多的值相同

大家好,有人可以帮助我,我什至不知道从哪里开始,很少有帮助。 我有这样的对象 我有一些像这样的对象 我需要比较这两个对象,看看是否有 3 个或更多的匹配正确,并基于此显示不同的消息。 我知道我可以像这样比较两个对象 它会返回我是真还是假,我也尝试过返回正确的答案,但我又没有运气,就像这样 再次感谢回
3回复

如何通过与id进行比较来合并三个不同的数组?在Angular6中

阵列: 要求的结果是: 我尝试了不同的功能,并尝试了两个数组,但无法合并没有id比较的对象..
3回复

比较两个数组与对象权益

我有两种类型的数据结构 现在我正在比较数组的id值并将"Portfolio Lead"属性添加到dataA 。 下面是代码, 问题是, 当id不匹配时,我需要将"Portfolio Lead"添加为#NA 。 如果我尝试添加 if 语句,所有对象都将"Portfolio Lead"添加为#NA 。
2回复

如何从具有公共字段的三个数组中制作一个数组

我正在尝试创建一个HTML视图,我需要一个特定的数组模式。我有三个这样的数组: 第一个: 第二名: 第三名: 我需要最终的数组是这样的, 我尝试使用reduce,但是没有成功。 我对代码的时间复杂度没有任何问题,因为我会处理这些问题。 任何帮助将不胜感激,以实现最终的阵列。 编辑: 按照@Heret
2回复

使用联合或相交来映射数组以生成第三个数组

我正在尝试解决Angular 7中的问题,在这里我需要编写一个函数,该函数接受两个对象数组,在这种情况下,第一个和第二个对象数组返回第三个数组。 第三个数组与第一个数组非常相似,但是children数组中count键的值取决于第二个数组中是否有任何children ,或者取决于是否反映了该对
1回复

比较两个数组并使另一个数组在javascript中有所不同

我有以下类型的两个数组,我想检查两个数组( array1和array2 )并创建另一个数组( array3 ),它具有一个值,该值在array1中不可用。 例如 - 'mob2', 'pin', 'address2', 'city'在array1中可用,但在array2不可用。 我想要array3那
1回复

我们如何在Typescript、Angular中比较2个或多个数组?

我有 4 个数组,我必须在其中检查是否有任何相同的项目在 2 个以上的数组中。 如果是,那么基于一个属性,我必须从除一个之外的所有其他属性中删除。 从上面可以看出, id 2、id 5 和 id 1位于 1 个以上的数组中,其中modifiedOn较大的项目应该保留,其他的应该删除。
1回复

如何比较两个数组并添加新的属性和值

我想要做的是根据 dateStart 比较两个数组,例如 2020-10-09 04:40:01 然后在其他数组中没有 2020-10-09 04:40:01。 它会添加这样的对象。 如果数组不等于 dateStart 它应该添加一个对象,就像第一个数组有一个 "dateStart": "2020