簡體   English   中英

如何在 AngularJs 中將對象轉換為對象數組?

[英]How to convert Object to Array of Objects in AngularJs?

這是我的代碼

"type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   }

在上面的代碼中,我有一個包含兩個嵌套對象的Type對象。 現在我想使用 angularjs 將該對象轉換為以下格式的對象數組。

輸出應該是這樣的:-

"type":[
        {   "label":"name",
    "required":false,
    "type":"String",
    },
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   ]

也許是這樣的?

 var arr = []; Object.keys(obj).forEach(function(key) { arr.push(obj[key]); }); obj = { type: arr };

您可以使用鍵作為數組的索引。

 var object = { "type": { "0": { "label": "name", "required": false, "type": "String", }, "1": { "label": "email", "required": false, "type": "String", } } }, array = []; Object.keys(object.type).map(function (k) { array[+k] = object.type[k]; }); object.type = array; document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

您應該使用Object.keys執行此操作

objsArray = [];
Object.keys(objs).forEach(function(key)
{
    objsArray.push(objs[key]);
});

說你有

var obj = {"type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   }}

你可以

var arr = [];
for(var key in obj.type){
  arr.push(obj.type[key])
}
obj.type = arr;

假設您的對象是:

var myObj = "type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   };

如果您使用的是 Lodash 庫:

myObj.type = _.map(myObj.type)

為了入黨——遲到總比不到好。 使用函數式編程處理數組很有趣,接受的答案很好,但稍作調整,您就得到了我認為更清晰的代碼。

 obj = { type: Object.keys(obj).map(function(key) { return obj[key]; }) };

或者使用更簡潔的 ES6 steez

 obj = { type: Object.keys(obj).map(key => obj[key]) };

超級干凈!

您無需循環即可輕松完成:

// Assuming Problem: 
var objectToArray = 
{
"type":{"0": {"label":"name",
              "required":false,
              "type":"String",
             },
        "1": { "label":"email",
              "required":false,
               "type":"String",
             }
        }
    }

// Answer:
console.log( {type : Array.from(Object.values(objectToArray.type))} );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM