Javascript 如何合并多个对象

Javascript 如何合并多个对象,javascript,react-native,object,Javascript,React Native,Object,您好,我是react native的新手,我想使用Object.assign()合并数据 我尝试使用简单的数组,但我的数组比一个大数组中的数组更有效 我的代码: let o1 = getCartData; // [{productId:56, productQuantity:1}, {productId:4, productQuantity:1}] let o2 = resultObject; // product with different quantity {product

您好,我是react native的新手,我想使用
Object.assign()
合并数据

我尝试使用简单的数组,但我的数组比一个大数组中的数组更有效

我的代码:

    let o1 = getCartData; // [{productId:56, productQuantity:1}, {productId:4, productQuantity:1}]
    let o2 = resultObject; // product with different quantity {productId:56, productQuantity:5}

    let finalObj = Object.assign([], o1, o2);
    console.log('Final', finalObj); // Output ▼["[","{",""","p","r","o","d","u","c","t","I","d",""",":","5","6",",",""","p","r","o","d","u","c","t","Q","u","a","n","t","i","t","y",""",":","1","}","]"]
我希望获得以下输出:

console.log('Final', finalObj); // Merged [{productId:56, productQuantity:5}, {productId:4, productQuantity:1}]

您可以
映射它,如果这是您需要的,请告诉我:

var obj1=[{productId:56,productQuantity:1},{productId:4,productQuantity:1}];
var obj2={productId:56,productQuantity:5};
var result=obj1.map({productId,productQuantity})=>({productId,productQuantity:obj2[`productId`]==productId?obj2.productQuantity:productQuantity});

控制台日志(结果)您可以使用映射和查找来执行此操作:

arr1.map(arrObj => arr2.find(arr2Obj => arr2Obj.productId === arrObj.productId) || arrObj);
此代码的作用是:

  • 在对象数组中,它遍历每个对象,在这里,每个对象称为arrObj
  • 对于每个名为arrObj的对象,我们使用箭头操作符(=>)指定一个操作,该操作将返回一个值
  • 现在我们使用array.find(()=>{}),它将在第二个数组上搜索,并搜索第二个数组中的每一项,我们为它设置一个条件,如果条件为true,它将返回找到的项的值,如果不为true,它将返回null
  • 我们使用(| |)运算符,当找不到项时将触发该运算符,我们返回对象本身,因为找不到具有相同Id的其他对象
请注意,此代码用于比较两个数组,在您的示例中,您尝试将数组与对象进行比较,如果o2等于[resultObject](在[括号]内,将其转换为数组),则可以轻松解决此问题


从这里获得此解决方案:

您是否可以使用或在此处创建此解决方案以显示问题的发生。您挽救了我的生命和我已经花费的时间。我为此工作了将近一周,但不知道该怎么办,因为
asyncStorage.mergeItem
不起作用,所以我不得不手动合并。还有一件事,如果我像这个数组一样{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucode>[pay:[{one:3},{two:5}]产品:[{“productId”:4,“productQuantity”:1},{“productId”:56,“productQuantity:5}],其他:[{…},{…}]