var newArr = [
{
"imgUrl":"http://jcyj.mem.cegn.cn/gw/dwa-micro-file-simple/api/file/download/ae8dbd89-252d-4fd7-9cb2-098fb92e454b",
"arr":[[39.867638888888884,116.39333333333333],[50.97152777777777,110.31527777777778]]
},
{
"imgUrl":"http://jcyj.mem.cegn.cn/gw/dwa-micro-file-simple/api/file/download/ae8dbd89-252d-4fd7-9cb2-098fb92e454b",
"arr":[[40.867638888888884,115.39333333333333],[40.97152777777777,120.31527777777778]]
},
{
"imgUrl":"",
"arr":[[],[]]
},{
"imgUrl":"",
"arr":[[],[]]
},
{
"imgUrl":"",
"arr":[[],[]]
},
{
"imgUrl":"",
"arr":[[],[]]
}
];
计算newArr数组所有对象中arr二维数组,比较后返回其中的[[最小值,最小值],[最大值,最大值]];
要这种结果[[39.867638888888884, 115.39333333333333], [50.97152777777777, 120.31527777777778]]
或者用 lodash
看原数据 arr 中只有两个点坐标,其实是不需要遍历的。但是既然要遍历,可以先把所有横坐标和纵坐标分别分组,方便计算最大最小值
当然,计算 xx 和 yy 分别遍历了两次,可以用一个 reduce 来完成一次遍历,但这不一定会更快
也可以把后面的最大小最值一并算出来,在一个 reduce/for 完成
如果每组数据的 arr 都只有两个坐标(我就当是坐标了),那就不用去遍历,直接给值就好
甚至可以应用更复杂一点的解构: