Jquery 如何在下拉列表中获得不同的值
我实现了一个下拉列表,其中列表来自一个JSON文件,但JSON有重复的值。如何在下拉列表中获得唯一值?这是我的密码:Jquery 如何在下拉列表中获得不同的值,jquery,json,Jquery,Json,我实现了一个下拉列表,其中列表来自一个JSON文件,但JSON有重复的值。如何在下拉列表中获得唯一值?这是我的密码: $(document).ready(function() { $.getJSON("data.json",function(obj) { $.each(obj, function(key, value){ $("#dropdown1").append("<option value=" + key + ">" + valu
$(document).ready(function() {
$.getJSON("data.json",function(obj) {
$.each(obj, function(key, value){
$("#dropdown1").append("<option value=" + key + ">" + value.name + "</option>");
});
});
});
在第一个下拉列表中,我得到了5个值,
abc1
3次和syn2
2次。我只想获得一次abc1
和syn2
。请帮忙 您可以通过将已添加到select的名称存储在一个数组中,并在添加下一个名称之前检查该数组来实现这一点。大概是这样的:
[{
"name": "abc1",
"date": 1459461600000
}, {
"name": "abc1",
"date": 1459461600000
}, {
"name": "abc1",
"date": 1459461600000
}, {
"name": "syn2",
"date": 1459461600000
}, {
"name": "syn2",
"date": 1458834026000
}];
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);
}
});
$(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);
}
});
});
});
var usedNames=[];
$。每个(对象、功能(键、值){
if(usedNames.indexOf(value.name)=-1){
$(“#dropdown1”).append(“+value.name+”);
usedNames.push(value.name);
}
});
您可以对对象数组进行重复数据消除,但如果您的唯一要求是在一个循环中获取单个属性,那么这似乎是多余的。您必须检查obj值是否重复,然后像这样附加到select选项:
[{
"name": "abc1",
"date": 1459461600000
}, {
"name": "abc1",
"date": 1459461600000
}, {
"name": "abc1",
"date": 1459461600000
}, {
"name": "syn2",
"date": 1459461600000
}, {
"name": "syn2",
"date": 1458834026000
}];
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);
}
});
$(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);
}
});
});
});
$(文档).ready(函数(){
$.getJSON(“data.json”,函数(obj){
重复变量=[];
$。每个(对象、功能(键、值){
if(replicate.indexOf(value.name)=-1){
$(“#dropdown1”).append(“+value.name+”);
重复.push(value.name);
}
});
});
});
非常感谢您的帮助:)没问题,很乐意为您效劳。为我保留了这一天。@Rorymcrossan我想知道,如果下列名称的日期abc1和sync2不同,会怎样说abc1=“date”:1459461600000 abc1=“date”:1459461600001为什么在10分钟后发布与我完全相同的答案?这是因为我的互联网连接很慢。