如果PUSH的数组为全局变量,尤其是定时刷新,会不断的进行数组叠加,影响数据的使用。
function getToolTip0() {
$.ajax({
type: 'get',
async: false,
data: {
//气泡信息阅读后,自动销毁;
},
url: './json/scatter.json',
dataType: "json",
success: function (result) {
tipData0 = result.data;
//当前气泡的数据;
for (var i = 0; i < tipData0.length; i++) {
communityData0.push({
name: tipData0[i].areaName,
value: [tipData0[i].areaLon, tipData0[i].areaLat, tipData0[i].areaId]
})
}
},
error: function (err) {
console.log(err + "图表请求数据失败!");
}
});
return tipData0, communityData0;
}
getToolTip0();
解决方案:
1、success返回时,清空数组,然后再PUSH.
success: function (result) {
tipData0 = result.data;
//清空全局数组变量,防止多次刷新叠加;
communityData0 = [];
//当前气泡的数据;
for (var i = 0; i < tipData0.length; i++) {
communityData0.push({
name: tipData0[i].areaName,
value: [tipData0[i].areaLon, tipData0[i].areaLat, tipData0[i].areaId]
})
}
},
2、数组去重:
//全局变量数据对象去重函数;
function getArr(arr) {
var result = [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i].name]) {
result.push(arr[i]);
obj[arr[i].name] = true;
}
}
return result;
}
var arr = [
{
"name": "营子社区",
"value": [
"120.388081",
"36.192447",
"1"
]
},
{
"name": "华泰社区",
"value": [
"120.392194",
"36.194542",
"2"
]
},
{
"name": "营子社区",
"value": [
"120.388081",
"36.192447",
"1"
]
},
{
"name": "华泰社区",
"value": [
"120.392194",
"36.194542",
"2"
]
}
];
console.log(getArr(arr))
Done!