例如你須要這樣格式的數據:小程序
[{"name":"合肥市","arrey":[{"lat":"31.862323","long":"117.289267","name":"G+競技網咖","address":"宿州路60號太陽城B1層"},{"lat":"31.876318","long":"117.349632","name":"H&M(瑤海萬達廣場店)","address":"臨泉東路與和縣路交叉口瑤海萬達廣場1層"},{"lat":"31.790946","long":"117.207581","name":"N(港澳廣場)","address":"翡翠路與芙蓉路交口往北50米處港澳廣場F1層"},{"lat":"31.883742","long":"117.280290","name":"U家魚店","address":"蒙城路與義井路交叉口"},{"lat":"31.863728","long":"117.289816","name":"L‘OREAL(百大鼓樓名品中心店)","address":"宿州路96號百大鼓樓名品中心金座1層"},{"lat":"31.865195","long":"117.292521","name":"T.G","address":"宿州路老太陽城三樓55號"},{"lat":"31.864289","long":"117.294944","name":"e(合肥百盛)","address":"淮河中路77號合肥百盛F1層"},{"lat":"31.864579","long":"117.293090","name":"W.(海亞大世界)","address":"北含山路與淮河路步行街交叉口東北100米海亞大世界F3層N13"},{"lat":"31.610835","long":"117.883709","name":"s·deer","address":"東塘路巢湖萬達廣場1層"},{"lat":"31.704786","long":"117.301498","name":"寶文MALL","address":"南寧路與廬州大道交叉口西南150米"},{"lat":"31.804920","long":"117.223823","name":"置地廣場D座","address":"天鵝湖南岸(綠軸西側)"}]},{"name":"無爲縣","arrey":[{"lat":"31.290454","long":"117.931186","name":"東方家園B區","address":"軍二路與渡江路交匯處"},{"lat":"31.450142","long":"117.895212","name":"橫山","address":"無爲縣"}]},{"name":"安慶市","arrey":[{"lat":"30.530881","long":"117.069820","name":"文采花園F座","address":"旺園路南100米"}]}]
先從緩存中獲取數據,判斷當前數據是否在你獲取的數據裏面沒有的話就添加進去,有的話就不添加,超過10個的話就刪除數組
實現:緩存
var obj = { name: ‘合肥’, arrey: [{ lat: ‘31.82057’, long: ‘117.227308’, name: ‘合肥汽車站’, address: ‘合肥汽車站餐館’ }] }//點擊的當前 wx.getStorage({ key: "bigKSarr", success(res) { console.log(res.data) var bigKSarr = [];//命名大的數組 bigKSarr = res.data; //判斷有沒有當前城市 let nameInside = bigKSarr.some(function (e) { return JSON.stringify(e.name) === JSON.stringify(obj.name); }) if (!nameInside) { //沒有就添加進去 bigKSarr.push(obj) } bigKSarr.forEach(function (el, i) { if (el.name == obj.name) { //同一個城市 let inside = el.arrey.some(function (item) { return JSON.stringify(item) === JSON.stringify(obj.arrey[0]); }) if (!inside) { ////判斷是否包含在某個城市的下列裏面沒有則push進去有的話就不push el.arrey.push(obj.arrey[0]); } } //若是數組超過10個就刪除第一個 if (el.arrey.length > 10) { el.arrey.splice(0,1) } }) wx.setStorage({ key: "bigKSarr", data: bigKSarr }) }, fail(res) { //第一次獲取緩存失敗 console.log(res) var bigKSarr = [];//命名大的數組 var ksli = { lat: e.currentTarget.dataset.latlog.split(",")[1], long: e.currentTarget.dataset.latlog.split(",")[0], name: e.currentTarget.dataset.name, address: e.currentTarget.dataset.address }//命名城市對應數組得單個對象 var ksliArr = []; ksliArr.push(ksli) var ksli = { "name": appInstance.globalData.defaultCounty, "arrey": ksliArr }//這個是名字對應數組得li bigKSarr.push(ksli) wx.setStorage({ key: "bigKSarr", data: bigKSarr }) } })
這個功能是在小程序緩存所須要的,因此上述代碼用了,小程序獲取小程序緩存的方法app