图片如下:
js代码如下:
<script>
/*
* 写个函数把input转换成output。input为数组,数组的每个元素为一个对象,
* 每个对象记录了北京市某个区对应小时的温度值,一个区一小时报一次温度,
* 数组里存了一天的数据,所以对每个区有24条,假如里边有10个区,就是一共240条数据。
var input = [
{name: "海淀",tempeture: 20,hour: 11},
{name: "海淀",tempeture: 18,hour: 10}
{name: "昌平",tempeture: 20,hour: 11},
{name: "昌平",tempeture: 18,hour: 10},
....
];
// 输出为一个对象,对象的key为每个区县的名字,每个key对应一个数组
var output = {
"海淀": [{tempeture: 6, hour: 00}, {tempeture: 6, hour: 01}, .....],
"昌平": [{tempeture: 6, hour: 00}, {tempeture: 6, hour: 01}, .....],
.......
}
*/
var input = [{
name: "海淀",
tempeture: 20,
hour: 11
}, {
name: "海淀",
tempeture: 18,
hour: 10
},{
name: "昌平",
tempeture: 20,
hour: 11
}, {
name: "昌平",
tempeture: 18,
hour: 10
},
];
function fn(val){
var output={};//定义一个对象
val.forEach(item=>{
console.log(item);
if(!output[item["name"]]){//为true执行以下步骤
output[item["name"]]=[{"tempeture":item["tempeture"],"hour":item["hour"]}]
}else {
output[item["name"]].push({"tempeture": item["tempeture"], "hour": item["hour"]});
//push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。//2
}
});
return output;//返回值
}
console.log(fn(input));//调用这个数组
</script>