我想將物件“資料”轉換為陣列“expectedData”。獲得轉換后的 Object 的最佳解決方案是什么?
我要轉換的物件:
var data = {
"model_A": [
{
"col_1": "Article A",
"col_2": "description A",
"model_B": {
"col_3": "/imageA.jpg"
},
"model_C": [
{
"col_4": "tag1",
"col_5": 3
},
{
"col_4": "tag2",
"col_5": 4
},
]
},
{
"col_1": "Article B",
"col_2": "description B",
"model_B": {
"col_3": "/imageB.jpg"
},
}
]
}
我想要的陣列:
var expectedData = [
[
"Article A",
"description A",
"/imageA.jpg",
"tag1",
3
],
[
"Article A",
"description A",
"/imageA.jpg",
"tag2",
4
],
[
"Article B",
"description B",
"/imageB.jpg",
"",
""
],
]
謝謝您的回答。
https://jsfiddle.net/1ap5uh48/1/#&togetherjs=pj71nt4yox
uj5u.com熱心網友回復:
var convertedData = convert(data);
function convert(data) {
var result = [];
for (var model_A of data.model_A) {
if (model_A.model_C && model_A.model_C.length > 0) {
for (var model_C of model_A.model_C) {
result.push([
model_A.col_1,
model_A.col_2,
model_A.model_B.col_3,
model_C.col_4,
model_C.col_5,
]);
}
} else {
result.push([
model_A.col_1,
model_A.col_2,
model_A.model_B.col_3,
"",
"",
]);
}
}
return result;
}
console.log("convertedData", convertedData);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/356222.html
標籤:javascript
