//一维数组根据条件(两点之间上传时间间隔大于等于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));
一维数组转二维数组
于 2018-09-07 12:01:50 首次发布