[英]Convert javascript object to array of individual objects
我有以下 object:
{English: 4, Math: 5, CompSci: 6}
如何將其轉換為對象數組,例如:
[{English: 4}, {Math: 5}, {CompSci: 6}]
無法在任何地方找到答案。 謝謝!!
var input = { English: 4, Math: 5, CompSci: 6 }; var op = []; Object.keys(input).forEach(function(key) { var obj = {}; obj[key] = input[key]; op.push(obj); //push newly created object in `op`array }); console.log(op);
使用更新的JS,您可以采用Object.entries
並映射單個屬性。
var object = { English: 4, Math: 5, CompSci: 6 }, array = Object.entries(object).map(([k, v]) => ({ [k]: v })); console.log(array);
只需遍歷對象中的每個鍵。
var oldObject = {English: 4, Math: 5, CompSci: 6}; var newArray = []; // Loop over each key in the object for (var key in oldObject) { // Create a temp object var temp = {}; // Set the key of temp temp[key] = oldObject[key] // Push it to the array newArray.push(temp); } console.log(newArray)
您可以直接通過{}
分配對象,但必須使用[]
引號作為鍵值,否則將不起作用
var obj = {English: 4, Math: 5, CompSci: 6};
var n_obj = [];
for(var i in obj){
n_obj.push({[i]:obj[i]});
}
console.log(n_obj);
您可以使用Object.entries
將 object 轉換為鍵值對數組,然后將 map 這個數組轉換為使用Object.fromEntries
從每個單獨的鍵值對創建的更小的 object(這里的關鍵部分是在傳遞之前包裝在另一個數組中從fromEntries
):
Object.entries(obj).map(e => Object.fromEntries([e]))
反向方法類似:我們使用Object.fromEntries
,然后傳入一個鍵值對數組。 這個數組是通過平面映射(即消除額外的數組層)對象數組到我們通過調用Object.entries
在每個小 object 上獲得的鍵值對數組創建的。這里的關鍵是平面映射,沒有它,我們將得到一個 arrays 的鍵值對數組,因為我們在另一個轉換中添加了額外的層來分隔屬性。
Object.fromEntries(arr.flatMap(o => Object.entries(o)))
您可以將JSON.stringify()
, String.prototype.match()
與RegExp
/".*"\\:.*(?=,|})/
,將String.prototype.split()
與RegExp
/,/
, Array.prototype.join()
與參數"},{"
, JSON.parse()
var obj = {English: 4, Math: 5, CompSci: 6}; var res = JSON.parse("[{" + JSON.stringify(obj) .match(/".*"\\:.*(?=,|})/g)[0] .split(/,/) .join("},{") + "}]"); console.log(res);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.