gpt4 book ai didi

javascript - Json按2个字段格式化

转载 作者:行者123 更新时间:2023-12-02 15:05:13 25 4
gpt4 key购买 nike

我尝试使用 this fiddle 代码按城市名称格式化 json 组。

我正在尝试按具有城市名称和城市代码的相同代码进行分组。任何逻辑提示都会有帮助。

CurrentDataFormat = [{
"Id": 17,
"code": "123",
"cityName": "Los Angeles",
"cityCode": "LA",
"startDate": "1/20/2016",
"endDate": "1/20/2016"
},

{
"Id": 18,
"code": "456",
"cityName": "Chicago",
"cityCode": "CH",
"startDate": "1/22/2016",
"endDate": "1/25/2016"
},

{
"Id": 19,
"code": "789",
"cityName": "Los Angeles",
"cityCode": "LA",
"startDate": "1/13/2016",
"endDate": "1/21/2016"
}
]

GroupByJsonFormatData(CurrentDataFormat);

function GroupByJsonFormatData(CurrentDataFormat)
{
var refinedArray = {};

for (i = 0; i < CurrentDataFormat.length; i++) {
refinedArray[CurrentDataFormat[i].cityName] = refinedArray[CurrentDataFormat[i].cityName] ? refinedArray[CurrentDataFormat[i].cityName] : {};

refinedArray[CurrentDataFormat[i].cityName].name = CurrentDataFormat[i].cityName;

refinedArray[CurrentDataFormat[i].cityName].CityData = refinedArray[CurrentDataFormat[i].cityName].CityData ? refinedArray[CurrentDataFormat[i].cityName].CityData : [];
refinedArray[CurrentDataFormat[i].cityName].CityData.push({
"Id": CurrentDataFormat[i].Id,
"code": CurrentDataFormat[i].code,
"startDate": CurrentDataFormat[i].startDate,
"endDate": CurrentDataFormat[i].endDate
});
}

var ExpectedDataFormat = [];

for (singleCityName in refinedArray){
ExpectedDataFormat.push({'name' : refinedArray[singleCityName].name, 'CityData' : refinedArray[singleCityName].CityData});
};

console.log(ExpectedDataFormat);
document.getElementById("resultPane").innerHTML = JSON.stringify(ExpectedDataFormat, undefined, 2);;
}

我还尝试通过在参数中传递列名称来使此代码通用。例如我尝试像 GroupByJsonFormatData(CurrentDataFormat, GroupByColumn);并尝试将此参数列附加到数组,如

refinedArray[CurrentDataFormat[i].+GroupByColumn]

但它在串联级别不起作用。

最佳答案

您可以使用以下方法简化代码:

refinedArray[CurrentDataFormat[i].cityName] = refinedArray[CurrentDataFormat[i].cityName] || {};

而不是

refinedArray[CurrentDataFormat[i].cityName] = refinedArray[CurrentDataFormat[i].cityName] ? refinedArray[CurrentDataFormat[i].cityName] : {};

与数组相同:

refinedArray[CurrentDataFormat[i].cityName].CityData = refinedArray[CurrentDataFormat[i].cityName].CityData || [];

对于通用实现,您可以使用

refinedArray[CurrentDataFormat[i]][GroupByColumn]

关于javascript - Json按2个字段格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com