数组及数组对象操作 ----------包括排序,去重,合并,翻转等

1 篇文章 0 订阅

1.数组对象根据某一属性值排序

 let arr=[
 {id:4,name:大大},
{id:1,name:轻轻},
{id:2,name:文文},
]
  function sortRule(a,b) {
                return a.id-b.id; 
            }
  arr.sort(sortRule);//直接改变原数组

2.数组去重

let arr = [1,0,0,2,9,8,3,1];

         function unique(arr) {
             return Array.from(new Set(arr))
  }
    console.log(unique(arr));   // [1,0,2,9,8,3]

3.数组对象去重

           function unique(arr){
                var hash = [];
                for(var i=0;i<arr.length;i++){
                    var flag = true;
                    for(var j=0;j<hash.length;j++){
                        if(arr[i].province_name == hash[j].province_name){
                            flag = false;
                        }
                    }
                    if(flag){
                        hash.push(arr[i]);
                    }
                }
                return hash;
            }
this.allShengData = unique(this.allShengData);

4.数组对象合并

data.data.data如图
在这里插入图片描述

let tempArr = [];
                        let aa = [];
                        for (let i = 0; i < data.data.data.length; i++) {
                            if (tempArr.indexOf(data.data.data[i].hospital_id) === -1) {
                                aa.push({
                                    id: data.data.data[i].hospital_id,
                                    label: data.data.data[i].hospital_name,
                                    children: [
                                        {id: data.data.data[i].doctor_id,
                                        label: data.data.data[i].doctor_name,
                                        disabled: false
                                        }],
                                    disabled: true
                                });
                                tempArr.push(data.data.data[i].hospital_id);
                            } else {
                                for (let j = 0; j < aa.length; j++) {
                                    if (aa[j].id == data.data.data[i].hospital_id) {
                                        aa[j].children.push(
                                            {
                                                id: data.data.data[i].doctor_id,
                                                label: data.data.data[i].doctor_name,
                                                disabled: false
                                        });
                                        break;
                                    }
                                }
                            }
                        }
                        // console.log(aa);
                        this.doData=aa

合并渲染后在这里插入图片描述5.数组翻转

var arr = ["f","e","i","e","s","o","f","t"];
document.writeln(arr.join()); f,e,i,e,s,o,f,t

arr.reverse();
document.writeln(arr.join()); t,f,o,s,e,i,e,f

6.数组和数组对象提取公共值

   const arr = arr1.filter((item: any) => {
      return arr2.indexOf(item.key) != -1;
   });

7.二维数组解开为一维数组

const arr1 = [[1,2],3,[4,5,6]
const arr = arr1.flat();
console.log(arr) //[1,2,3,4,5,6]

8.查找对象数组中某属性的最大最小值

const array=[
        {
            "id": 1,
            "value": 20
        },
        {
            "id": 2,
            "value": 66
        },
        {
            "id": 3,
            "value": 34
       }
     ]
     Math.max.apply(Math, array.map(function(o) {return o.value})) //最大值 66
     Math.min.apply(Math, array.map(function(o) {return o.value})) //最小值 20

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值