繁体   English   中英

过滤对象数组js

[英]Filter in array of objects js

有5天的天气数组每个国家每三个小时分为多少个国家,我必须取出每天最高温度(temp_max)的城市如何以最有效和最快捷的方式进行用 JavaScript?

我希望得到快速答复,非常感谢!

一个对象(一个城市)的例子 由几个这样的对象组成的数组 我自己会解释:我需要根据与该城市以及其他城市中 main.temp_max 最大值的城市相同的 dt 数取出我经过一个有 10 个城市的数组,比如这个城市这是数组:

   []
0:
city: {id: 281184, name: "Jerusalem", coord: {…}, country: "IL", population: 714000, …}
cnt: 40
cod: "200"
list: Array(40)
0:
clouds: {all: 0}
dt: 1626382800
dt_txt: "2021-07-15 21:00:00"
main: {temp: 296.34, feels_like: 296.65, temp_min: 296.34, temp_max: 296.37, pressure: 1003, …}
pop: 0
sys: {pod: "n"}
visibility: 10000
weather: [{…}]
wind: {speed: 3.08, deg: 274, gust: 3.89}
__proto__: Object
1: {dt: 1626393600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
2: {dt: 1626404400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
3: {dt: 1626415200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
4: {dt: 1626426000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
5: {dt: 1626436800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
6: {dt: 1626447600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
7: {dt: 1626458400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
8: {dt: 1626469200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
9: {dt: 1626480000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
10: {dt: 1626490800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
11: {dt: 1626501600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
12: {dt: 1626512400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
13: {dt: 1626523200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
14: {dt: 1626534000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
15: {dt: 1626544800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
16: {dt: 1626555600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
17: {dt: 1626566400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
18: {dt: 1626577200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
19: {dt: 1626588000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
20: {dt: 1626598800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
21: {dt: 1626609600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
22: {dt: 1626620400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
23: {dt: 1626631200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
24: {dt: 1626642000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
25: {dt: 1626652800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
26: {dt: 1626663600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
27: {dt: 1626674400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
28: {dt: 1626685200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
29: {dt: 1626696000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
30: {dt: 1626706800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
31: {dt: 1626717600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
32: {dt: 1626728400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
33: {dt: 1626739200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
34: {dt: 1626750000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
35: {dt: 1626760800, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
36: {dt: 1626771600, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
37: {dt: 1626782400, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
38: {dt: 1626793200, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
39: {dt: 1626804000, main: {…}, weather: Array(1), clouds: {…}, wind: {…}, …}
length: 40
__proto__: Array(0)
message: 0
__proto__: Object
1: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
2: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
3: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
4: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
5: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
6: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
7: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
8: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
9: {cod: "200", message: 0, cnt: 40, list: Array(40), city: {…}}
length: 10

一个想法是按temp_max顺序temp_max进行排序(最高值位于0位置),然后使用从数组中temp_max该对象的shift

但是我不确定这是否是您想要的,因为问题的措辞有点令人困惑;-;

function cutOutHighTemp(arr){
  return [...arr] //copy of arr(cuz y not)
  .sort((a,b)=>b.main.temp_max - a.main.temp_max)
  .shift() //take out 0 position(which has highest temp_max)
}
//example usage
var editedWeather=cutOutHighTemp(weather)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM