常用数组方法(一)

100 阅读1分钟

数组对象去重

        let person = [
            { id: 0, name: "小明" },
            { id: 1, name: "小张" },
            { id: 2, name: "小李" },
            { id: 3, name: "小孙" },
            { id: 1, name: "小周" },
            { id: 2, name: "小陈" },
        ];

        let obj = {};
        person = person.reduce((cur, next) => {
            obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
            return cur;

        }, []) //设置cur默认类型为数组,并且初始值为空的数组
        console.log("person=>",person);

字符串数组构建对象数组

        let arr1 = ["1", "2", "3", "4", "5"]
        console.log(arr1.toString().split(','))
        let arr2 = []
        arr1.map((item)=>{
            arr2.push({id:''})
            arr2[arr2.length - 1].id = item
        })
        console.log(arr2)

数组对象的包含与被包含

        let arr = [{ id: 3 }, { id: 4 }]
        let arr1 = [{ id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }]
        arr1 = arr1.filter((item) => {
            let list = arr.map((v) => v.id)
            return !list.includes(item.id)
        })
        console.log(arr1)

找不同

        var array1 = [{ "Num": "A " }, { "Num": "B" }];
        var array2 = [{ "Num": "A ", "Name": "t1 " }, { "Num": "B", "Name": "t2" }, {      "Num": "C ", "Name": "t3 " }];
        var result = [];
        for (var i = 0; i < array2.length; i++) {
            var obj = array2[i];
            var num = obj.Num;
            var isExist = false;
            for (var j = 0; j < array1.length; j++) {
                var aj = array1[j];
                var n = aj.Num;
                if (n == num) {
                    isExist = true;
                    break;
                }
            }
            if (!isExist) {
                result.push(obj);
            }
        }
        console.log(result);