簡體   English   中英

如何將Javascript屬性列表轉換為對象列表

[英]how can I convert Javascript List of properties to List of objects

我有這樣的屬性列表

[{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"},
 {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}]

我想將它們轉換成這樣的東西

[{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"},
{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"}]

這是我幾乎每次將表單轉換為json並將其提交給具有復雜類型的控制器時面臨的一個問題。

您可以檢查對象是否包含密鑰ID並使用以下所有對象構建新對象。

 var data = [{ ID: "0" }, { Day: "" }, { Time: "" }, { Type: "Both" }, { Status: "false" }, { ID: "0" }, { Day: "" }, { Time: "" }, { Type: "Both" }, { Status: "false" }], result = data.reduce(function (r, o) { if ('ID' in o) { r.push(Object.assign({}, o)); } else { Object.assign(r[r.length - 1], o); } return r; }, []); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

這是一個奇怪的輸入,..

以下我假設總有一個ID,它首先出現。 由於該數據結構無法拆分屬性。

 var a = [{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}, {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}]; var ret = [], c = null; a.forEach((r) => { if (r.ID) { c = {}; ret.push(c); } let k = Object.keys(r)[0]; c[k] = r[k]; }); console.log(ret); 

暫無
暫無

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

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