[英]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.