程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有条件地将属性和值从一个对象数组复制到另一个对象数组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决有条件地将属性和值从一个对象数组复制到另一个对象数组?

开发过程中遇到有条件地将属性和值从一个对象数组复制到另一个对象数组的问题如何解决?下面主要结合日常开发的经验,给出你关于有条件地将属性和值从一个对象数组复制到另一个对象数组的解决方法建议,希望对你解决有条件地将属性和值从一个对象数组复制到另一个对象数组有所启发或帮助;

有两个对象数组,我的目标是检查 array1 中的属性 ID 下的值是否与属性 categoryID 下的值匹配array2。当找到匹配项时想要将缺失的属性 amount 添加到 array1 的相关成员或创建一个包含我需要的所有属性和值的新数组 - ID,姓名、金额

这是两个数组:

const array1 = [{
  ID: 8,name: 'Online ShopPing',},{
  ID: 12,name: 'Subscriptions',{
 ID: 5,name: 'Patreon donations',}]

const array2 = [
{
  expence: {
    amount: -66.66,categoryID: 5,{
  expence: {
    amount: 100018.85,categoryID: 0,{
  expence: {
    amount: -43340.9,categoryID: 12,]

尝试将不同的方法从答案中结合到社区中已经发布的类似但更简单的案例,但未能使它们在我的案例中发挥作用。

解决方法

循环遍历array1中的每一项,然后在循环内循环遍历array2中的每一项并检查categoryId是否等于id

const array1 = [{
    id: 8,name: 'Online Shopping',},{
    id: 12,name: 'Subscriptions',{
    id: 5,name: 'Patreon donations',}
]
const array2 = [{
    expence: {
      amount: -66.66,categoryId: 5,{
    expence: {
      amount: 100018.85,categoryId: 0,{
    expence: {
      amount: -43340.9,categoryId: 12,]

array1.forEach((E) => {
  array2.forEach((f) => {
    if (f.categoryId == e.id) {
      e.amount = f.expence.amount;
    }
  })
})
console.log(array1);

您还可以使用 Array.filter 来查找 categoryId 等于 id 的项目:

const array1 = [{
    id: 8,]

array1.forEach((E) => {
  var arr = array2.filter(f => f.categoryId == e.id);
  if(arr.length > 0) e.amount = arr[0].expence.amount;
})
console.log(array1);

大佬总结

以上是大佬教程为你收集整理的有条件地将属性和值从一个对象数组复制到另一个对象数组全部内容,希望文章能够帮你解决有条件地将属性和值从一个对象数组复制到另一个对象数组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。