[英]How to get only unique items in a multidimensional array with JavaScript/jquery?
例如,我得到了一個二維數組的多維數組。 我從數據庫中獲得了這個數組,但是它最多可以填充2600個以上的對象,但是如果可以的話,它大約有30個對象。 如何解決呢?
設置是:我如何獲取信息:
$.getJSON(url1,function(data1)
{
for (var i in data1.layers){
$.each(data1.layers[i].legend, function( a, b ) {
for(var a in data1.layers[i].legend[a]){
$.each(data1.layers[i].legend, function( key, val ){
items.push({label: val.label, url: "long link" + val.url});
});
};
});
};
items[0].label
items[0].url
items[1].label
items[1].url
等等...
我在php中找到了另一個關於此的stackoverflow頁面,但是我無法在JavaScript / JQuery中使它工作。 Stackoverflow PHP解決方案
首先將它們推到數組上是您犯了一個錯誤。 您應該創建一個關聯數組,並且鍵字段為唯一方面。
使用字典查看您已經擁有的項目:
var dict = {};
$.getJSON(url1,addToLocalArray);
function addToLocalArray(data1){
for (var i in data1.layers){
$.each(data1.layers[i].legend, function( a, b ) {
for(var a in data1.layers[i].legend[a]){
$.each(data1.layers[i].legend, function( key, val ){
if(!dict[val.url+'-'+val.label]){
// or create some sort of unique hash for each element...
dict[val.url+'-'+val.label] = 1;
items.push({label: val.label, url: "long link" + val.url});
}
});
}
});
}
}
我建議:
A)將唯一性過濾邏輯推到數據庫。 它的效率更高,並且不需要詳盡的迭代。
B)為每個獨特的物品(如vogomatix建議)有一個鑰匙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.