递归获取children数组的长度;查找数组对象的属性是否有重复值;表格自定义顺序;根据json数组属性值排序、当前时间戳

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36784628/article/details/90749684

一、获取children数组长度

        getMaxFloor (treeData) { //获取树长度
            let max = 0
            function each (data) {
                for(let i = 0;i<data.length;i++){
                    max++;
                    if(data[i].children){
                        each(data[i].children);
                    }
                }
            }
            each(treeData);
            return max
        },

二、查找数组对象的属性是否有重复值

        attrOnly(array, attr){
            var first;
            if(array.length>0){
                for(let i=0;i<array.length;i++){
                    if(array[i][attr]!=""){
                        first = array[i][attr];
                    }
                }
                let num=0
                for(let i=0;i<array.length;i++){
                    if(array[i][attr]==first){
                        num+=1
                    }
                }
                if(num>1){
                    return true
                }else{
                    return false
                }
            }
        },

//使用
attrOnly("要检测的数组","要查的对应的属性名称")
attrOnly(arr,"name")

arr=[{"name","张三"},{"age",20}]

三、elemenyui表格的自定义顺序,原理字符串的剪切替换

        todown(index){//自定义顺序
            if(this.maketableData[0].children.length<2){
                return;
            }
            let old_ = this.maketableData[0].children[index-1] //本行数据
            let new_ = this.maketableData[0].children[index] //下一行的数据
            let tableData_ = JSON.parse(JSON.stringify(this.maketableData));
            tableData_[0].children.splice(index,1,old_)
            tableData_[0].children.splice(index-1,1,new_)
            this.maketableData = tableData_;
        },
        toup(index){
            if(this.maketableData[0].children.length<2){
                return;
            }
            let old_ = this.maketableData[0].children[index-1] //本行数据
            let new_ = this.maketableData[0].children[index-2] //上一行的数据
            let tableData_ = JSON.parse(JSON.stringify(this.maketableData));
            tableData_[0].children.splice(index-2,1,old_)
            tableData_[0].children.splice(index-1,1,new_)
            this.maketableData = tableData_;
        },

四、根据json数组的属性值排序

            creatCompare(propertyName) {
                return function (obj1,obj2) {
                    var value1=obj1[propertyName];
                    var value2=obj2[propertyName];
                    if(value1<value2){
                        return -1
                    }else if(value1>value2){
                        return 1
                    }else {
                        return 0
                    }
                }
            },

使用:

var data=[{name:"xiaoming",age:13,weight:20,},{name:"liming",age:23,weight:21},{name:"zhangming",age:8,weight:66}]
console.log(data.sort(creatCompare("age"))) 

五、获取当前时间戳

let timestamp = Date.parse(new Date());
this.mouthvalue = this.base.format(new Date(timestamp),"yyyy-MM")

六、根据时间获得时间戳

let endDateVal = 2019-07-12 09:02:01
new Date(endDateVal).getTime()

七、数组从大到小排列

arr.sort(function(a,b){
	    return a>b;
	    //return a<b;//可试试这种的结果。
})

八、取数组中,每个元素的重复次数

//取重复数
arr = arr.sort()//先排序
function reactnum(arr){
	let newArr = [];
    for (let i = 0; i < arr.length;) {
      let count = 0;
      for (let j = i; j < arr.length; j++) {
	        if (arr[i] == arr[j]) {
	        	count++;
	        }
      }
      newArr.push({
        'Number': arr[i],
        'count':count
      });
      i += count
    }
    return newArr
}

九、数组去重

function dedupe(array) {
  return Array.from(new Set(array));
}

var arr = dedupe(arr)
扫描二维码关注公众号,回复: 7577009 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_36784628/article/details/90749684
今日推荐