jquery - 如何在下拉列表中获得不同的值

标签 jquery json

我实现了一个下拉列表,其中列表来自 JSON 文件,但 JSON 具有重复值。我怎样才能获得该下拉列表中的唯一值?这是我的代码:

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

我的 JSON 文件如下所示:

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

在第一个下拉列表中,我现在获得了 5 个值,abc1 3 次,syn2 2 次。我只想获取 abc1syn2 一次。请帮忙!

最佳答案

您可以通过将已添加到选择的名称存储在数组中来实现此目的,并在添加下一个名称之前检查该数组。像这样的事情:

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

您可以对对象数组进行重复数据删除,但是当您唯一的要求是在一个循环中获取单个属性时,这似乎有些过分了。

关于jquery - 如何在下拉列表中获得不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469696/

相关文章:

javascript - 如何通过类名和存储获取页面中的所有链接

jquery - 切换到 jQuery 1.9.1 时窗口高度计算停止

javascript - 自定义 HTML5 视频控件 - Escape 按钮不会触发全屏切换功能

javascript - 图片库悬停叠加高度问题

arrays - jq: 无法用字符串 "id"索引数组

json - 重新格式化 JSON 数据以适应树状存储

jquery - 如何组合两个使用 .on 的 jQuery 选择?

iphone - 解析 JSON 中的新日期

javascript - Highcharts 生成不正确

javascript - 如何在Jquery中循环访问对象?