我有一些数据
var list =[{date: "2019-09-27T08:00", atmosphericpressure: 80.58},
{date: "2019-09-27T08:00", lightningdistance: 0},
{date: "2019-09-27T08:00", lightningevents: 0},
{date: "2019-09-27T08:00", precipitation: 0},
{date: "2019-09-27T08:00", radiation: 829.03},
{date: "2019-09-27T08:00", relativehumidity: 0.78},
{date: "2019-09-27T08:00", temperature: 20.24},
{date: "2019-09-27T08:00", winddirection: 56.43},
{date: "2019-09-27T08:00", windgusts: 3.78},
{date: "2019-09-27T08:00", windspeed: 1.73},
{date: "2019-09-27T09:00", atmosphericpressure: 80.5},
{date: "2019-09-27T09:00", lightningdistance: 0},
{date: "2019-09-27T09:00", lightningevents: 0},
{date: "2019-09-27T09:00", precipitation: 0},
{date: "2019-09-27T09:00", radiation: 739.98},
{date: "2019-09-27T09:00", relativehumidity: 0.74},
{date: "2019-09-27T09:00", temperature: 20.82},
{date: "2019-09-27T09:00", winddirection: 52.83},
{date: "2019-09-27T09:00", windgusts: 2.95},
{date: "2019-09-27T09:00", windspeed: 1.54}]
并且我想将其转换为
var list =[
{
date: '2019-09-27T08:00',
atmosphericpressure: 80.58,
lightningdistance: 0,
lightningevents: 0,
precipitation: 0,
radiation: 829.03,
relativehumidity: 0.78,
temperature: 20.24,
winddirection: 56.43,
windgusts: 3.78,
windspeed: 1.73
},
{
date: '2019-09-27T09:00',
atmosphericpressure: 80.5,
lightningdistance: 0,
lightningevents: 0,
precipitation: 0,
radiation: 739.98,
relativehumidity: 0.74,
temperature: 22.82,
winddirection: 52.83,
windgusts: 2.95,
windspeed: 1.54
}
]
我已经尝试过使用类似的过滤器
let temp=[]
let result = list.filter(obj => {
if(obj.date === '2019-09-27T09:00'){
let group= {
date:obj.date,
atmosphericpressure:obj.atmosphericpressure,
lightningdistance:obj.lightningdistance,
lightningevents:obj.lightningevents,
precipitation:obj.precipitation,
radiation:obj.radiation,
relativehumidity:obj.relativehumidity,
temperature:obj.temperature,
winddirection:obj.winddirection,
windgusts:obj.windgusts,
windspeed:obj.windspeed
}
temp.push(group)
}
})
console.log(temp)
但是结果不是我想要的,我得到以下信息
[
{
"date": "2019-09-27T09:00",
"atmosphericpressure": 80.5,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": 0,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": 0,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": 0,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": 739.98,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": 0.74,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": 20.82,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": 52.83,
"windgusts": undefined,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": 2.95,
"windspeed": undefined
},
{
"date": "2019-09-27T09:00",
"atmosphericpressure": undefined,
"lightningdistance": undefined,
"lightningevents": undefined,
"precipitation": undefined,
"radiation": undefined,
"relativehumidity": undefined,
"temperature": undefined,
"winddirection": undefined,
"windgusts": undefined,
"windspeed": 1.54
}
]
这是我的代码,请运行以查看结果以及如何根据我的意愿进行处理
var list = [{date: "2019-09-27T08:00", atmosphericpressure: 80.58},
{date: "2019-09-27T08:00", lightningdistance: 0},
{date: "2019-09-27T08:00", lightningevents: 0},
{date: "2019-09-27T08:00", precipitation: 0},
{date: "2019-09-27T08:00", radiation: 829.03},
{date: "2019-09-27T08:00", relativehumidity: 0.78},
{date: "2019-09-27T08:00", temperature: 20.24},
{date: "2019-09-27T08:00", winddirection: 56.43},
{date: "2019-09-27T08:00", windgusts: 3.78},
{date: "2019-09-27T08:00", windspeed: 1.73},
{date: "2019-09-27T09:00", atmosphericpressure: 80.5},
{date: "2019-09-27T09:00", lightningdistance: 0},
{date: "2019-09-27T09:00", lightningevents: 0},
{date: "2019-09-27T09:00", precipitation: 0},
{date: "2019-09-27T09:00", radiation: 739.98},
{date: "2019-09-27T09:00", relativehumidity: 0.74},
{date: "2019-09-27T09:00", temperature: 20.82},
{date: "2019-09-27T09:00", winddirection: 52.83},
{date: "2019-09-27T09:00", windgusts: 2.95},
{date: "2019-09-27T09:00", windspeed: 1.54},
{date: "2019-09-27T10:00", atmosphericpressure: 80.37},
{date: "2019-09-27T10:00", lightningdistance: 0},
{date: "2019-09-27T10:00", lightningevents: 0},
{date: "2019-09-27T10:00", precipitation: 0},
{date: "2019-09-27T10:00", radiation: 662.45},
{date: "2019-09-27T10:00", relativehumidity: 0.69},
{date: "2019-09-27T10:00", temperature: 21.64},
{date: "2019-09-27T10:00", winddirection: 68.55},
{date: "2019-09-27T10:00", windgusts: 2.59},
{date: "2019-09-27T10:00", windspeed: 1.17},
{date: "2019-09-27T11:00", atmosphericpressure: 80.3},
{date: "2019-09-27T11:00", lightningdistance: 0},
{date: "2019-09-27T11:00", lightningevents: 0},
{date: "2019-09-27T11:00", precipitation: 0},
{date: "2019-09-27T11:00", radiation: 292.93},
{date: "2019-09-27T11:00", relativehumidity: 0.66},
{date: "2019-09-27T11:00", temperature: 21.31},
{date: "2019-09-27T11:00", winddirection: 47.26},
{date: "2019-09-27T11:00", windgusts: 2.74},
{date: "2019-09-27T11:00", windspeed: 1.24},
{date: "2019-09-27T12:00", atmosphericpressure: 80.24},
{date: "2019-09-27T12:00", lightningdistance: 0},
{date: "2019-09-27T12:00", lightningevents: 0},
{date: "2019-09-27T12:00", precipitation: 0},
{date: "2019-09-27T12:00", radiation: 168.85},
{date: "2019-09-27T12:00", relativehumidity: 0.65},
{date: "2019-09-27T12:00", temperature: 21.23},
{date: "2019-09-27T12:00", winddirection: 46.44},
{date: "2019-09-27T12:00", windgusts: 1.77},
{date: "2019-09-27T12:00", windspeed: 0.87},
{date: "2019-09-27T13:00", atmosphericpressure: 80.22},
{date: "2019-09-27T13:00", lightningdistance: 0},
{date: "2019-09-27T13:00", lightningevents: 0},
{date: "2019-09-27T13:00", precipitation: 0},
{date: "2019-09-27T13:00", radiation: 133.87},
{date: "2019-09-27T13:00", relativehumidity: 0.65},
{date: "2019-09-27T13:00", temperature: 20.89},
{date: "2019-09-27T13:00", winddirection: 44.6},
{date: "2019-09-27T13:00", windgusts: 1.7},
{date: "2019-09-27T13:00", windspeed: 1.02},
{date: "2019-09-27T14:00", atmosphericpressure: 80.25},
{date: "2019-09-27T14:00", lightningdistance: 0},
{date: "2019-09-27T14:00", lightningevents: 0},
{date: "2019-09-27T14:00", precipitation: 0},
{date: "2019-09-27T14:00", radiation: 79.42},
{date: "2019-09-27T14:00", relativehumidity: 0.65},
{date: "2019-09-27T14:00", temperature: 20.56},
{date: "2019-09-27T14:00", winddirection: 48.5},
{date: "2019-09-27T14:00", windgusts: 1.79},
{date: "2019-09-27T14:00", windspeed: 0.95},
{date: "2019-09-27T15:00", atmosphericpressure: 80.3},
{date: "2019-09-27T15:00", lightningdistance: 0},
{date: "2019-09-27T15:00", lightningevents: 0},
{date: "2019-09-27T15:00", precipitation: 0},
{date: "2019-09-27T15:00", radiation: 16.2},
{date: "2019-09-27T15:00", relativehumidity: 0.7},
{date: "2019-09-27T15:00", temperature: 19.46},
{date: "2019-09-27T15:00", winddirection: 352.4},
{date: "2019-09-27T15:00", windgusts: 0.68},
{date: "2019-09-27T15:00", windspeed: 0.42},
{date: "2019-09-27T16:00", atmosphericpressure: 80.37},
{date: "2019-09-27T16:00", lightningdistance: 0},
{date: "2019-09-27T16:00", lightningevents: 0},
{date: "2019-09-27T16:00", precipitation: 0},
{date: "2019-09-27T16:00", radiation: 0},
{date: "2019-09-27T16:00", relativehumidity: 0.77},
{date: "2019-09-27T16:00", temperature: 18.43},
{date: "2019-09-27T16:00", winddirection: 333.37},
{date: "2019-09-27T16:00", windgusts: 1.73},
{date: "2019-09-27T16:00", windspeed: 0.89},
{date: "2019-09-27T17:00", atmosphericpressure: 80.41},
{date: "2019-09-27T17:00", lightningdistance: 0},
{date: "2019-09-27T17:00", lightningevents: 0},
{date: "2019-09-27T17:00", precipitation: 0},
{date: "2019-09-27T17:00", radiation: 0},
{date: "2019-09-27T17:00", relativehumidity: 0.85},
{date: "2019-09-27T17:00", temperature: 17.42},
{date: "2019-09-27T17:00", winddirection: 353.25},
{date: "2019-09-27T17:00", windgusts: 0.94},
{date: "2019-09-27T17:00", windspeed: 0.46}
];
let temp=[]
let result = list.filter(obj => {
if(obj.date === '2019-09-27T09:00'){
let group= {
date:obj.date,
atmosphericpressure:obj.atmosphericpressure,
lightningdistance:obj.lightningdistance,
lightningevents:obj.lightningevents,
precipitation:obj.precipitation,
radiation:obj.radiation,
relativehumidity:obj.relativehumidity,
temperature:obj.temperature,
winddirection:obj.winddirection,
windgusts:obj.windgusts,
windspeed:obj.windspeed
}
temp.push(group)
}
})
console.log(temp)
我真的需要一些有关如何实现这一目标的见解,任何人都可以提供帮助。我还附上了我当前执行情况的摘要,以便可以轻松查看我在做什么
您可以使用数组forEach实现所需的内容
var list =[{date: "2019-09-27T08:00", atmosphericpressure: 80.58},
{date: "2019-09-27T08:00", lightningdistance: 0},
{date: "2019-09-27T08:00", lightningevents: 0},
{date: "2019-09-27T08:00", precipitation: 0},
{date: "2019-09-27T08:00", radiation: 829.03},
{date: "2019-09-27T08:00", relativehumidity: 0.78},
{date: "2019-09-27T08:00", temperature: 20.24},
{date: "2019-09-27T08:00", winddirection: 56.43},
{date: "2019-09-27T08:00", windgusts: 3.78},
{date: "2019-09-27T08:00", windspeed: 1.73},
{date: "2019-09-27T09:00", atmosphericpressure: 80.5},
{date: "2019-09-27T09:00", lightningdistance: 0},
{date: "2019-09-27T09:00", lightningevents: 0},
{date: "2019-09-27T09:00", precipitation: 0},
{date: "2019-09-27T09:00", radiation: 739.98},
{date: "2019-09-27T09:00", relativehumidity: 0.74},
{date: "2019-09-27T09:00", temperature: 20.82},
{date: "2019-09-27T09:00", winddirection: 52.83},
{date: "2019-09-27T09:00", windgusts: 2.95},
{date: "2019-09-27T09:00", windspeed: 1.54}]
const result = [];
list.forEach(i => {
let x = result.find(r => r.date === i.date);
if(x) {
Object.assign(x, i);
} else {
result.push(i);
}
});
console.log(result);
您将在每次迭代中为所有对象属性分配值。在每次迭代中,您将获得单个属性的值。所有其他值都是不确定的。因此,剩余的值每次都会被undefined覆盖。
不是手动分配所有值,而是使用temp[index][Object.keys(obj)[1]] = Object.values[obj][1])
我使用一个函数来减少一些代码。
代码是
let temp=[{},{}];
function addData(pos,obj){
temp[pos][Object.keys(obj)[1]] = Object.values(obj)[1];
}
list.forEach((o) => {
if(o.date == "2019-09-27T08:00"){
temp[0]["date"] = o.date;
window.addData(0,o);
}
else
if(o.date == "2019-09-27T09:00"){
temp[1]["date"] = o.date;
window.addData(1,o);
}
});
console.log(temp)
函数addData
会将属性分配给给定温度下给定索引的值。
由于您在这里使用了一些常量值,因此我在代码中也将它们用作常量。如果不是这种情况,则可以使用变量并在数组中动态初始化空对象。
var list = [{date: "2019-09-27T08:00", atmosphericpressure: 80.58},
{date: "2019-09-27T08:00", lightningdistance: 0},
{date: "2019-09-27T08:00", lightningevents: 0},
{date: "2019-09-27T08:00", precipitation: 0},
{date: "2019-09-27T08:00", radiation: 829.03},
{date: "2019-09-27T08:00", relativehumidity: 0.78},
{date: "2019-09-27T08:00", temperature: 20.24},
{date: "2019-09-27T08:00", winddirection: 56.43},
{date: "2019-09-27T08:00", windgusts: 3.78},
{date: "2019-09-27T08:00", windspeed: 1.73},
{date: "2019-09-27T09:00", atmosphericpressure: 80.5},
{date: "2019-09-27T09:00", lightningdistance: 0},
{date: "2019-09-27T09:00", lightningevents: 0},
{date: "2019-09-27T09:00", precipitation: 0},
{date: "2019-09-27T09:00", radiation: 739.98},
{date: "2019-09-27T09:00", relativehumidity: 0.74},
{date: "2019-09-27T09:00", temperature: 20.82},
{date: "2019-09-27T09:00", winddirection: 52.83},
{date: "2019-09-27T09:00", windgusts: 2.95},
{date: "2019-09-27T09:00", windspeed: 1.54},
{date: "2019-09-27T10:00", atmosphericpressure: 80.37},
{date: "2019-09-27T10:00", lightningdistance: 0},
{date: "2019-09-27T10:00", lightningevents: 0},
{date: "2019-09-27T10:00", precipitation: 0},
{date: "2019-09-27T10:00", radiation: 662.45},
{date: "2019-09-27T10:00", relativehumidity: 0.69},
{date: "2019-09-27T10:00", temperature: 21.64},
{date: "2019-09-27T10:00", winddirection: 68.55},
{date: "2019-09-27T10:00", windgusts: 2.59},
{date: "2019-09-27T10:00", windspeed: 1.17},
{date: "2019-09-27T11:00", atmosphericpressure: 80.3},
{date: "2019-09-27T11:00", lightningdistance: 0},
{date: "2019-09-27T11:00", lightningevents: 0},
{date: "2019-09-27T11:00", precipitation: 0},
{date: "2019-09-27T11:00", radiation: 292.93},
{date: "2019-09-27T11:00", relativehumidity: 0.66},
{date: "2019-09-27T11:00", temperature: 21.31},
{date: "2019-09-27T11:00", winddirection: 47.26},
{date: "2019-09-27T11:00", windgusts: 2.74},
{date: "2019-09-27T11:00", windspeed: 1.24},
{date: "2019-09-27T12:00", atmosphericpressure: 80.24},
{date: "2019-09-27T12:00", lightningdistance: 0},
{date: "2019-09-27T12:00", lightningevents: 0},
{date: "2019-09-27T12:00", precipitation: 0},
{date: "2019-09-27T12:00", radiation: 168.85},
{date: "2019-09-27T12:00", relativehumidity: 0.65},
{date: "2019-09-27T12:00", temperature: 21.23},
{date: "2019-09-27T12:00", winddirection: 46.44},
{date: "2019-09-27T12:00", windgusts: 1.77},
{date: "2019-09-27T12:00", windspeed: 0.87},
{date: "2019-09-27T13:00", atmosphericpressure: 80.22},
{date: "2019-09-27T13:00", lightningdistance: 0},
{date: "2019-09-27T13:00", lightningevents: 0},
{date: "2019-09-27T13:00", precipitation: 0},
{date: "2019-09-27T13:00", radiation: 133.87},
{date: "2019-09-27T13:00", relativehumidity: 0.65},
{date: "2019-09-27T13:00", temperature: 20.89},
{date: "2019-09-27T13:00", winddirection: 44.6},
{date: "2019-09-27T13:00", windgusts: 1.7},
{date: "2019-09-27T13:00", windspeed: 1.02},
{date: "2019-09-27T14:00", atmosphericpressure: 80.25},
{date: "2019-09-27T14:00", lightningdistance: 0},
{date: "2019-09-27T14:00", lightningevents: 0},
{date: "2019-09-27T14:00", precipitation: 0},
{date: "2019-09-27T14:00", radiation: 79.42},
{date: "2019-09-27T14:00", relativehumidity: 0.65},
{date: "2019-09-27T14:00", temperature: 20.56},
{date: "2019-09-27T14:00", winddirection: 48.5},
{date: "2019-09-27T14:00", windgusts: 1.79},
{date: "2019-09-27T14:00", windspeed: 0.95},
{date: "2019-09-27T15:00", atmosphericpressure: 80.3},
{date: "2019-09-27T15:00", lightningdistance: 0},
{date: "2019-09-27T15:00", lightningevents: 0},
{date: "2019-09-27T15:00", precipitation: 0},
{date: "2019-09-27T15:00", radiation: 16.2},
{date: "2019-09-27T15:00", relativehumidity: 0.7},
{date: "2019-09-27T15:00", temperature: 19.46},
{date: "2019-09-27T15:00", winddirection: 352.4},
{date: "2019-09-27T15:00", windgusts: 0.68},
{date: "2019-09-27T15:00", windspeed: 0.42},
{date: "2019-09-27T16:00", atmosphericpressure: 80.37},
{date: "2019-09-27T16:00", lightningdistance: 0},
{date: "2019-09-27T16:00", lightningevents: 0},
{date: "2019-09-27T16:00", precipitation: 0},
{date: "2019-09-27T16:00", radiation: 0},
{date: "2019-09-27T16:00", relativehumidity: 0.77},
{date: "2019-09-27T16:00", temperature: 18.43},
{date: "2019-09-27T16:00", winddirection: 333.37},
{date: "2019-09-27T16:00", windgusts: 1.73},
{date: "2019-09-27T16:00", windspeed: 0.89},
{date: "2019-09-27T17:00", atmosphericpressure: 80.41},
{date: "2019-09-27T17:00", lightningdistance: 0},
{date: "2019-09-27T17:00", lightningevents: 0},
{date: "2019-09-27T17:00", precipitation: 0},
{date: "2019-09-27T17:00", radiation: 0},
{date: "2019-09-27T17:00", relativehumidity: 0.85},
{date: "2019-09-27T17:00", temperature: 17.42},
{date: "2019-09-27T17:00", winddirection: 353.25},
{date: "2019-09-27T17:00", windgusts: 0.94},
{date: "2019-09-27T17:00", windspeed: 0.46}
];
let temp=[{},{}];
function addData(pos,obj){
temp[pos][Object.keys(obj)[1]] = Object.values(obj)[1];
}
list.forEach((o) => {
if(o.date == "2019-09-27T08:00"){
temp[0]["date"] = o.date;
window.addData(0,o);
}
else
if(o.date == "2019-09-27T09:00"){
temp[1]["date"] = o.date;
window.addData(1,o);
}
});
console.log(temp)