看板 Ajax 關於我們 聯絡資訊
※ 引述《flirmnave (焰離雨星)》之銘言: : 大家好 : 利用PHP由來源取得資料後 以JSON回傳 : JSON大致長這樣 : http://www.jsoneditoronline.org/?id=7d7865f63885c57fc18765b0c0bfa7ef : 然後要利用那些資料append到網頁上 : 而問題就在 取回來的資料是有重複的 : 例如上面的網址所呈現的JSON有三筆資料 : 但有兩筆是一樣的 : 想要讓他變成不重複的資料該怎麼做呢?? : 我有找到 unique() 這個方法 : 目前的作法是 大致是以下 : success: function(jsonData) { : var jsonList = jsonData.CourseList; //傳入的JSON : var jsonLength = jsonData.CourseList.length; //取JSON的長度 : var jsonInput = new Array(jsonLength); //新增空陣列 : for (var i = 0; i < jsonLength; i++) { //將JSON中的id複製到新陣列 : jsonInput[j] = jsonList[i]["id"]; : } : jsonInput = $.unique(jsonInput); //利用 unique() 去除重複值 : //最後用沒有重複值的 jsonInput 進行 append : 但是用這個方法 JSON 裡的 credit 就不見了 : 只剩下 id : 想請大家指點一下方向 : 該怎麼做才有辦法達成想要的效果呢? : 感謝大家 有用underscore會方便很多 不過既然你看起來只用jQuery.... 最簡單的方法大概是先用object hash儲存再轉陣列.... success: function(jsonData) { var hashObj = {}; $.each(jsonList, function(index, data) { hashObj[ data.id ] = data; //如果出現重複的id, 後面的資料會蓋掉前面的 }); //之後可以直接拿hashObj裡的資料來用,或者向下面這樣轉陣列 var uniquedDataList = []; $.each(hashObj, function(id, data) { uniquedDataList.push(data); }); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.132.13 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1448244923.A.AD9.html ※ 編輯: mrbigmouth (211.75.132.13), 11/23/2015 10:16:21 ※ 編輯: mrbigmouth (211.75.132.13), 11/23/2015 10:32:52
flirmnave: 感謝回答 我會試試看的!! 11/23 23:00