Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按2个字段设置Json格式_Javascript_Angularjs_Json_Group By - Fatal编程技术网

Javascript 按2个字段设置Json格式

Javascript 按2个字段设置Json格式,javascript,angularjs,json,group-by,Javascript,Angularjs,Json,Group By,我尝试用代码按城市名称格式化json组 我正在尝试使用城市名称和城市代码按相同的代码分组。任何逻辑提示都会有帮助 CurrentDataFormat = [{ "Id": 17, "code": "123", "cityName": "Los Angeles", "cityCode": "LA", "startDate": "1/20/2016", "endDate": "1/20/2016"

我尝试用代码按城市名称格式化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);;
}
CurrentDataFormat=[{
“Id”:17,
“代码”:“123”,
“城市名称”:“洛杉矶”,
“城市代码”:“LA”,
“起始日期”:“2016年1月20日”,
“截止日期”:“2016年1月20日”
},
{
“Id”:18,
“代码”:“456”,
“城市名称”:“芝加哥”,
“城市代码”:“CH”,
“起始日期”:“2016年1月22日”,
“截止日期”:“2016年1月25日”
},
{
“Id”:19,
“代码”:“789”,
“城市名称”:“洛杉矶”,
“城市代码”:“LA”,
“起始日期”:“1/13/2016”,
“截止日期”:“2016年1月21日”
}
]
GroupByJsonFormatData(CurrentDataFormat);
函数GroupByJsonFormatData(CurrentDataFormat)
{
var-darray={};
对于(i=0;i
我还试图通过在参数中传递列名使这段代码成为通用代码。 例如,我尝试了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]

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

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]
Lodash可以帮助您:

var groupedByCity =  _.groupBy(CurrentDataFormat, "cityName")
也许你正在寻找重新命名的钥匙或其他东西在一起

选择此项或在Lodash中搜索可以帮助您:

var groupedByCity =  _.groupBy(CurrentDataFormat, "cityName")
也许你正在寻找重新命名的钥匙或其他东西在一起


选择此项或在好奇中搜索。。。以这种格式对数组进行分组的最终原因是什么?要在UI上显示ng repeat.QUIRIED。。。以这种格式对数组进行分组的最终原因是什么?要在UI上显示ng repeat。