前端实际项目中的数组用处

业务需求原理: 两个数组求并集并且更新有交集的部分
数组知识: 数组深拷贝,数组删除、数组过滤

代码实现:

// 简化后的业务需求:两个数组求并集并且更新有交集的部分,以新数组的数据为准更新
    // 旧数组
    const oldArr = [
      { name: '金', age: 18, sex: '男' },
      { name: '木', age: 99, sex: '男' },
      { name: '土', age: 45, sex: '女' },
    ];
    // 新数组
    const newArr = [
      { name: '金', age: 55, sex: '男' },
      { name: '木', age: 78, sex: '男' },
      { name: '水', age: 21, sex: '女' },
      { name: '火', age: 9, sex: '男' },
      { name: '土', age: 66, sex: '女' },
    ];
    // 代码解析:新旧数组对比,删掉旧数组中的重叠的数据,再将新旧数组整合
    // 先深拷贝一个旧数组
    const midArr = [];
    oldArr.map(persons => {
      midArr.push({ ...persons });
    });
    oldArr.map((oldPersons, index) => {
      newArr.map((newPersons, index2) => {
        if(oldPersons.name === newPersons.name){
          delete midArr[index];
        }
      });
    });
    const newMidArr = midArr.filter(item=>item);
    const finalArr = newArr.concat(newMidArr);
    console.log(finalArr);

在这里插入图片描述

以上代码是精简后的业务需求
实际的需求:

  1. 考虑原数组是否为空
  2. 考虑新数组跟原数组的内容是否对应
  3. 考虑处理完数组后是否可以正常保存
  4. 实际需求有两种产品,两种产品更新方式有区分

总结:
拿到业务需求先将需求解析成前端的知识,再去着手写代码;
开发完后 列出比较明显的各种情况,自测以上情况再发版;
双重数组循环时注意遍历的次数;
一开始感觉有点绕,开发完后复盘代码发现只要思路清晰,其实也不难

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值