如果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!