Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何在一个数组中循环json数据_Javascript_Arrays_Json - Fatal编程技术网

Javascript 如何在一个数组中循环json数据

Javascript 如何在一个数组中循环json数据,javascript,arrays,json,Javascript,Arrays,Json,我有一个来自服务器端的JSON数据,但它不是我想要的。我的json数据有几个循环,我想将它们转换成单个循环 JSON我得到了 [ [ "Year", "2018-9", "2017-9" ], [ "JAYANAGAR", "2018-9", 857 ], [ "MALLESHWARAM", "2018-9", 169 ], [ "KOLAR", "2018-9",

我有一个来自服务器端的JSON数据,但它不是我想要的。我的json数据有几个循环,我想将它们转换成单个循环

JSON我得到了

    [
  [
    "Year",
    "2018-9",
    "2017-9"
  ],
  [
    "JAYANAGAR",
    "2018-9",
    857
  ],
  [
    "MALLESHWARAM",
    "2018-9",
    169
  ],
  [
    "KOLAR",
    "2018-9",
    178
  ],
  [
    "JAYANAGAR",
    "2017-9",
    635
  ],
  [
    "MALLESHWARAM",
    "2017-9",
    56
  ],
  [
    "KOLAR",
    "2017-9",
    90
  ]
]
这里的门店,即jayanagar malleshwaram和kolar,重复着我的不同日期

我正试图把它转换成这样的东西

 [
  [
    "Year",
    "2018-9",
    "2017-9"
  ],
  [
    "Jayanagar",
    857,
    635
  ],
  [
    "Malleshwaram",
    169,
    56
  ],
  [
    "Kolar",
    178,
    90
  ]
]
在我的第一篇文章中,json数据以日期重复,日期分别为
2018-8
2017-8

我想映射数据并将其简化为我试图获取的数据


我知道可以用JavaScript来完成,但我不知道怎么做。

假设您的每个“地点”的数据按年度顺序正确,您可以使用如下方式:

const input=[“年”、“2018-9”、“2017-9”]、[“贾亚纳加尔”、“2018-9”、857]、“马勒什瓦拉姆”、“2018-9”、169]、“科拉尔”、“2018-9”、178]、“贾亚纳加尔”、“2017-9”、635]、“马勒什瓦拉姆”、“2017-9”、56]、“科拉尔”、“2017-9”、90]]
const merged=input.reduce((acc,arr)=>{
const[城市、年份、价值]=arr;
如果(城市==“年”)
acc[城市]=arr
否则{
acc[城市]=acc[城市]
acc[城市].推送(值)
}
返回acc;
}, {})
常量输出=对象值(合并)

console.log(输出)
您可以将数据分组以创建所需的结构

const first=foo.shift();
const res=Array.from(
foo.reduce((a[t,|,n])=>a.set(t,(a.get(t)| |[]).concat(n)),新映射)
).map(e=>[].concat(…e));
解除移位(第一);
控制台日志(res)

常数foo=[
[
“年”,
'2018-9',
'2017-9'
],
[
“JAYANAGAR”,
'2018-9',
857
],
[
“MALLESHWARAM”,
'2018-9',
169
],
[
“科拉尔”,
'2018-9',
178
],
[
“JAYANAGAR”,
'2017-9',
635
],
[
“MALLESHWARAM”,
'2017-9',
56
],
[
“科拉尔”,
'2017-9',
90
]
];
const数据集=[
[
“年”,
"2018-9",
"2017-9"
],
[
“JAYANAGAR”,
"2018-9",
857
],
[
“马勒什瓦拉姆”,
"2018-9",
169
],
[
“科拉尔”,
"2018-9",
178
],
[
“JAYANAGAR”,
"2017-9",
635
],
[
“马勒什瓦拉姆”,
"2017-9",
56
],
[
“科拉尔”,
"2017-9",
90
]
];
const-dataBody=dataSet.slice(1);
const transformedDataBody=dataBody.reduce(函数(currentValue,nextValue){
currentValue[nextValue[0]]=currentValue[nextValue[0]]| |[nextValue[0]];
currentValue[nextValue[0]]。推送(nextValue[2]);
返回当前值;
}, {})
设finalDataSet=[dataSet[0]];
Object.key(transformedDataBody).map(function(key){
push(transformedDataBody[key]);
})
console.log(finalDataSet)