js 数据对象转化

Posted zhanglw456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 数据对象转化相关的知识,希望对你有一定的参考价值。

/*
   * { key1:[v11,v12],key2:[v21,v22]} 或 [[v11,v12],[v21,v22]] 转化成=》 [{key1:v11,key2:v21},{key1:v12,key2:v22},]
   * */
function objTransform1(obj){

    var desArr = [];
    if(JSON.stringify(obj) == "{}"){
        return desArr;
    }
    var keysArr = Object.keys(obj);
    if(!(obj[keysArr[0]] instanceof Array)){ // 如果是{key1:v1,key2:v2}模式
        desArr.push(obj);
        return desArr;
    }
    
    Object.keys(obj).forEach(function(key){

        var len =obj[key].length;
        for(var i=0; i<len; i++){
            if(!desArr[i]){
                desArr.push({});
            }

            (desArr[i])[key] = (obj[key])[i];
        }
    });
    return desArr;
}

 

  /*
*  [{key1:v11,key2:v12},{key1:v21,key2:v22}] 转化成=》 [[v11,v21],[v12,v22]]
    * */
    function transform2(objArr){
        var desArr= [];

        objArr.forEach(function(item,i){

            Object.keys(item).forEach(function(key,j){
                if(i==0){
                    desArr.push([]);
                }
                desArr[j].push(item[key]);
            });

        });

        return desArr;

    }

 

 

    // 简单对象扩展属性,obj是对象,attr是要添加的属性对象{key1:v1,key2:v2},innerExtend是否是内部的属性对象扩展
    function extendAttr(obj,attr,innerExtend){
        if(JSON.stringify(obj) == "{}" ){ //判断是否是空对象,这里空对象不扩展
         return false;
        }
        if(innerExtend){  //obj= {key1:{...},key2:{...}}
            Object.keys(obj).forEach(function(key0){

                Object.keys(attr).forEach(function(key){
                    (obj[key0])[key] = attr[key];
                });
            });

        }else{
            Object.keys(attr).forEach(function(key){
                obj[key] = attr[key];
            });
        }
    }

 

以上是关于js 数据对象转化的主要内容,如果未能解决你的问题,请参考以下文章

js里怎么把对象转化为json数据

js 数据对象转化

js代码片段

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

vue.js怎样将时间戳转化为日期格式