前端数组操作,方法(持续更新)

前端数组合并-数组去重

需求是进出口数据何在一起给桑基图用
数组是请求两个接口

get(arr) {

//合并数据
let leftParams = {
      };
await get1(leftParams).then((res) => {
        for (let index = 0; index < res.data.data.data.length; index++) {
          const element = res.data.data.data[index];
          this.leftSankeyData.data.push(element);
        }
        for (let index = 0; index < res.data.data.links.length; index++) {
          const element = res.data.data.links[index];
          this.leftSankeyData.links.push(element);
        }
      });
      let rightParams = {
      };
      await get2(rightParams).then((res) => {
        for (let index = 0; index < res.data.data.data.length; index++) {
          const element = res.data.data.data[index];
          this.leftSankeyData.data.push(element);
        }
        for (let index = 0; index < res.data.data.links.length; index++) {
          const element = res.data.data.links[index];
          this.leftSankeyData.links.push(element);
        }
      });
//使用了最原始的方式合并数据,其实用.concat我觉得更好点,这里要注意的是async异步操作,否则传递到组件中的可能是空
this.leftSankeyData.data = this.unique(this.leftSankeyData.data);
//需要的时候调用去重
},
unique(arr) {
      const res = new Map();
      //这个去重是用了map喝set的唯一特性
      //因为我这个数组的data中有name的字段,所以对象中的name是需要处理重复的内容
      return arr.filter((arr) => !res.has(arr.name) && res.set(arr.name, 1));
    },

前端数组位置查询

数组对象的字段相等的查询,查询位置
例如 [{id:1},{id:2}] ,返回的是数组中id等于1的第一次出现的位置
findIndex是查找符合条件的对象出现的位置

this.areaData.findIndex(
		(item) =>
				item.id == 1
)

find是查找符合条件的对象

this.areaData.find((item) => item.id == 1)

例如 [‘1’,‘2’]
数组普通查询,查询位置

this.areaData.indexOf('1')

前端数组是否存在查询

查询对象中是否存在满足这些条件的内容,返回true

let flag = res.data.some(
							(item) =>
								item.id == _id &&
								item.parent_id == 74 &&
								item.childrenList.length <= 0
						);

前端数组slice切割

使用slice,把一个数组根据下标切成两份(应对显示不同的字段)

this.hightTitle = res.data.slice(0, 1)[0];
this.marqueeList = res.data.slice(2, 10);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值