Javascript数组平等控制和改变值

嗨,我有两个可改变长度的数组,我试过,如果没有我想要的值,从该数组中删除它,并改变总和值,如果它已经改变数组2相同的序列代码

array1 = [
    {
      "serial": "3",
      "sum": "1"
    },
    {
      "serial": "700",
      "sum": "2"
    },
    {
      "serial": "300",
      "sum": "1"
    },
]

array2 = [{
      "someting": 10,
      "sum": "3",
      "serialList": ["700","711"],
    },

   {
      "someting": 10,
      "sum": "1",
      "serialList": ["300"],
    },
    {
      "someting": 10,
      "sum": "2",
      "serialList": [],
    }
]  

他我的两个数组,如我所说的数组长度是可变的,有时数组1长度大,有时数组2,我想如果序列号在数组1中不存在,在数组2中删除从数组1元素和改变和值,如果它已经改变了数组2相同的序列代码,根据上面的数组1[0]序列代码不存在和数组1[1]的总和值不同数组2[0]的总和值改变为总和值数组1[1]到数组2[0],序列号300到相同的总和号到数组不做任何事情,我想输出数组1是。

array1 = [
    {
      "serial": "700",
      "sum": "3"
    },
    {
      "serial": "300",
      "sum": "1"
    },
]

解决方案:

使用一个”… 平面图

array1.flatMap(el => {
  // find array2 element with array1 element's serial
  const array2el = array2.find(({ serialList }) =>
    serialList.includes(el.serial)
  );
  if (array2el) {
    if (array2el.sum !== el.sum) {
      el.sum = array2el.sum; // sum different, update
    }
  } else {
    return []; // return [] to delete
  }
  return [el]; // return [el] to keep
});

const array1 = [
  {
    serial: "3",
    sum: "1"
  },
  {
    serial: "700",
    sum: "2"
  },
  {
    serial: "300",
    sum: "1"
  }
];

const array2 = [
  {
    someting: 10,
    sum: "3",
    serialList: ["700", "711"]
  },

  {
    someting: 10,
    sum: "1",
    serialList: ["300"]
  },
  {
    someting: 10,
    sum: "2",
    serialList: []
  }
];

const processedArray1 = array1.flatMap(el => {
  const array2el = array2.find(({ serialList }) =>
    serialList.includes(el.serial)
  );
  if (array2el) {
    if (array2el.sum !== el.sum) {
      el.sum = array2el.sum;
    }
  } else {
    return []; // delete
  }
  return [el]; // return el
});

console.log(processedArray1);

给TA打赏
共{{data.count}}人
人已打赏
未分类

为什么当只传递一个字符串数组时,编译器会因为一个非常量表达式而出错?

2022-9-8 18:58:27

未分类

ReactJs: TypeError: 无法读取未定义的jest酶的属性 "name"。

2022-9-8 18:58:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索