一维数组转二维数组

//一维数组根据条件(两点之间上传时间间隔大于等于500s)转二维数组

var json = {

"code": 0,

"info": [{

"angle": 0,

"createDate": "2018-09-04 17:51:37",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "dacb54fe9d304962a87a6ba9e6e03c88",

"lat": 34.159272,

"lon": 108.973942,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 0,

"updateDate": "2018-09-04 17:51:37"

}, {

"angle": 0,

"createDate": "2018-09-04 17:53:37",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c558392915f546d78d0b72cc44a7d422",

"lat": 34.15923448350694,

"lon": 108.96654106987847,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 0,

"updateDate": "2018-09-04 17:53:37"

}, {

"angle": 0,

"createDate": "2018-09-04 17:53:42",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "fad92acd70e94c0da4988cbd83bd54d6",

"lat": 34.159235026041664,

"lon": 108.96651014539931,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 2.13,

"updateDate": "2018-09-04 17:53:42"

}, {

"angle": 0,

"createDate": "2018-09-04 17:53:47",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "9ea47e3894be49f2b8963943286f2481",

"lat": 34.159206271701386,

"lon": 108.96625705295139,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 7.11,

"updateDate": "2018-09-04 17:53:47"

}, {

"angle": 0,

"createDate": "2018-09-04 17:54:02",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "2f2b5c42a4d54786bbdf6cf16528f2b8",

"lat": 34.15923166666666,

"lon": 108.96596,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 26,

"updateDate": "2018-09-04 17:54:02"

}, {

// 从这儿开始切割

"angle": 0,

"createDate": "2018-09-04 18:13:59",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "8f77d11d18c94481972dbb52cfe64fc3",

"lat": 34.164815,

"lon": 108.950524,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 0,

"updateDate": "2018-09-04 18:13:59"

}, {

"angle": 0,

"createDate": "2018-09-04 18:19:22",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "7ae766885f0d4091bcf9f785806d1bbb",

"lat": 34.18598605685764,

"lon": 108.94569227430556,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 2.93,

"updateDate": "2018-09-04 18:19:22"

}, {

"angle": 0,

"createDate": "2018-09-04 18:19:27",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "2d6971db435043cea3541f847288de05",

"lat": 34.18615234375,

"lon": 108.94569118923611,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 4.32,

"updateDate": "2018-09-04 18:19:27"

}, {

"angle": 0,

"createDate": "2018-09-04 18:19:32",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "ae3de825f07e4028b9e0bd0a266bfcde",

"lat": 34.18639919704861,

"lon": 108.9456898328993,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 5.38,

"updateDate": "2018-09-04 18:19:32"

}, {

"angle": 0,

"createDate": "2018-09-04 18:19:41",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "e6199051a6b5479890484d2df0b6aeb3",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:41"

}, {

"angle": 0,

"createDate": "2018-09-04 18:19:50",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 19:19:50",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 19:19:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 20:20:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 21:21:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 22:22:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 22:20:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 23:22:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 23:32:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 23:31:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 23:32:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}, {

"angle": 0,

"createDate": "2018-09-04 23:50:58",

"driverId": "b3bb5b6b84714d14b58a47a6dc74a19c",

"id": "c331739a40ed47f9ba05c597b340bd89",

"lat": 34.186460833333335,

"lon": 108.94566611111111,

"orderId": "ef8c224a99b643bfbbc09d0eb1af06c3",

"speed": 19,

"updateDate": "2018-09-04 18:19:50"

}],

"msg": "成功"

}

 

var e = json.info;

 

//经纬度数组绘制地图

var pathParam = [];

//循环填充数组

for (var i = 0; i < e.length; i++) {

//存储对象

var arrObj = {};

//保存开始和结束时经纬度

if (i == 0) {

if (e[i].lat == 0 || e[i].lon == 0) {

statrLat = e[i + 1].lat;

statrLon = e[i + 1].lon;

} else {

statrLat = e[i].lat;

statrLon = e[i].lon;

}

arrObj.tm = 1478031031;

} else if (i == e.length - 1) {

endLat = e[i].lat;

endLon = e[i].lon;

arrObj.tm = i + 1;

} else {

arrObj.tm = i + 1;

}

arrObj.x = e[i].lon;

arrObj.y = e[i].lat;

arrObj.sp = 10;

arrObj.ag = 0;

//时间格式转时间戳进行对比

var thisTime = e[i].createDate;

thisTime = thisTime.replace(/-/g, '/');

var time = new Date(thisTime);

time = (time.getTime()) / 1000;

arrObj.time = time;

pathParam.push(arrObj);

}

 

console.log(pathParam);

 

var arrayList = [];

//拆分为二维数组方法

function getArr() {

for (var i = 0; i < pathParam.length - 1; i++) {

if (arrayList.length == 0) {

if (pathParam[i + 1].time - pathParam[i].time >= 500) {

arrayList.push(pathParam.slice(0, i + 1));

arrayList.push(pathParam.slice(i + 1, pathParam.length));

}

} else if (arrayList.length != 0) {

var arrayListTwoArr = arrayList[arrayList.length - 1]

for (var j = 0; j < arrayListTwoArr.length - 1; j++) {

if (arrayListTwoArr[j + 1].time - arrayListTwoArr[j].time >= 500) {

arrayList.push(arrayListTwoArr.slice(0, j + 1));

arrayList.push(arrayListTwoArr.slice(j + 1, arrayListTwoArr.length));

break;

}

}

}

}

//通过下标剔除二维数组内被拆分过但未剔除的数组

for (var i = 0; i < arrayList.length - 1; i++) {

if (i == 0) {

 

} else if (i % 2 == 1) {

arrayList.splice(i, 1, 5);

}

}

}

 

//数组去重

function uniq(array) {

//一个新的临时数组

var temp = [];

for (var i = 0; i < array.length; i++) {

if (temp.indexOf(array[i]) == -1) {

temp.push(array[i]);

}

}

//删除最终留下的那一个需要被删除的

temp.splice(1, 1);

return temp;

}

getArr();

uniq(arrayList);

console.log(uniq(arrayList));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值