2016-04-07 4 views
2

JSONファイルからのリストのドロップダウンを実装しましたが、JSONに重複値があります。そのドロップダウンで一意の値を取得するにはどうすればよいですか?ここに私のコードは次のとおりです。ドロップダウンで別の値を取得する方法

$(document).ready(function() { 
    $.getJSON("data.json",function(obj) { 
     $.each(obj, function(key, value){ 
      $("#dropdown1").append("<option value=" + key + ">" + value.name + "</option>"); 
     }); 
    }); 
}); 

私のJSONファイルは、次のようになります。今、私は5つの値、abc1 3回とsyn2 2回を取得しています最初のドロップダウンで

[{ 
    "name": "abc1", 
    "date": 1459461600000 
}, { 
    "name": "abc1", 
    "date": 1459461600000 
}, { 
    "name": "abc1", 
    "date": 1459461600000 
}, { 
    "name": "syn2", 
    "date": 1459461600000 
}, { 
    "name": "syn2", 
    "date": 1458834026000 
}]; 

abc1syn2の両方を1回だけ取得したいと思います。助けてください!

答えて

2

これは、すでに選択した名前を配列に格納し、次の名前を追加する前に配列をチェックすることで実現できます。あなたがオブジェクトの配列をだます-解除できますが、あなたの唯一の要件は、1つのループ内の単一プロパティを取得するときに、これはやり過ぎと思われる

var usedNames = []; 
$.each(obj, function(key, value) { 
    if (usedNames.indexOf(value.name) == -1) { 
     $("#dropdown1").append("<option value=" + key + ">" + value.name + "</option>"); 
     usedNames.push(value.name); 
    } 
}); 

Working example

:このような何か。

+0

ウル助けを感謝たくさん:) – siya

+0

問題ありません、 –

+0

こんにちは、そこに誰を助けるために喜んで! – siya

0

あなたは、このような選択オプションを追加し、その後重複のためのOBJの値を確認する必要があります。

$(document).ready(function() { 
    $.getJSON("data.json",function(obj) { 
    var duplicate= []; 
    $.each(obj, function(key, value) { 
    if (duplicate.indexOf(value.name) == -1) { 
     $("#dropdown1").append("<option value=" + key + ">" + value.name + "</option>"); 
     duplicate.push(value.name); 
     } 
    }); 
    }); 
}); 
+0

10分後に私とまったく同じ答えを投稿するのはなぜですか? –

+0

私のインターネット接続が遅いために起こったことです。 – Sumanta736

関連する問題