gpt4 book ai didi

javascript - 如何将 "filter"JSON 用于唯一的键名称/值对?

转载 作者:数据小太阳 更新时间:2023-10-29 05:59:43 25 4
gpt4 key购买 nike

我有一些 JSON 数据,这些数据为我提供了一个包含经纬度等信息的语言列表。它还包含一个我用于图标的组值——我想建立一个图例它。 JSON 看起来像这样:

{"markers":[
{"language":"Hungarian","group":"a", "value":"yes"},
{"language":"English", "group":"a", "value":"yes"},
{"language":"Ewe", "group":"b", "value":"no"},
{"language":"French", "group":"c", "value":"NA"}
]}

我想“过滤”它以像这样结束:

{"markers":[
{"group":"a", "value":"yes"},
{"group":"b", "value":"no"},
{"group":"c", "value":"NA"}
]}

现在我得到了这个,使用 jQuery 来创建我的图例..但当然它会吸收所有值:

$.getJSON("http://127.0.0.1:8000/dbMap/map.json", function(json){
$.each(json.markers, function(i, language){
$('<p>').html('<img src="http://mysite/group' + language.group + '.png\" />' + language.value).appendTo('#legend-contents');
});
});

对于给定的一对,我如何才能只获取整个 JSON 对象中唯一的名称/值对?

最佳答案

我会将标记数组转换为键值对,然后循环对象属性。

var markers = [{"language":"Hungarian","group":"a", "value":"yes"}, 
{"language":"English", "group":"a", "value":"yes"},
{"language":"Ewe", "group":"b", "value":"no"},
{"language":"French", "group":"c", "value":"NA"}];

var uniqueGroups = {};
$.each(markers, function() {
uniqueGroups[this.group] = this.value;
});

然后

$.each(uniqueGroups, function(g) {
$('<p>').html('<img src="http://mysite/group' + g + '.png\" />' + this).appendTo('#legend-contents');
});

for(var g in uniqueGroups)
{
$('<p>').html('<img src="http://mysite/group' + g + '.png\" />' + uniqueGroups[g]).appendTo('#legend-contents');
}

此代码示例用循环中的最后一个值覆盖唯一值。如果您想改用第一个值,则必须执行一些条件检查以查看 key 是否存在。

关于javascript - 如何将 "filter"JSON 用于唯一的键名称/值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com