gpt4 book ai didi

javascript - 从 JSON 中选择不同的值

转载 作者:IT老高 更新时间:2023-10-28 12:52:36 24 4
gpt4 key购买 nike

我的 JSON 如下

{"DATA": [{"id":11,"name":"ajax","subject":"OR","mark":63},
{"id":12,"name":"javascript","subject":"OR","mark":63},
{"id":13,"name":"jquery","subject":"OR","mark":63},
{"id":14,"name":"ajax","subject":"OR","mark":63},
{"id":15,"name":"jquery","subject":"OR","mark":63},
{"id":16,"name":"ajax","subject":"OR","mark":63},
{"id":20,"name":"ajax","subject":"OR","mark":63}],"COUNT":"120"}

有什么好的方法可以从这个JSON中找出distinct name

结果 javascript,jquery,ajax

我可以使用以下方法来做到这一点

var arr=[''];
var j=0;
for (var i = 0; i < varjson.DATA.length; i++) {
if($.inArray(varjson.DATA[i]["name"],arr)<0){
arr[j]=varjson.DATA[i]["name"];
j++;
}
}

有没有什么更好的方法可以给我带来更好的性能?

最佳答案

如果你想节省一些循环,我会使用一个对象和一个数组:

var lookup = {};
var items = json.DATA;
var result = [];

for (var item, i = 0; item = items[i++];) {
var name = item.name;

if (!(name in lookup)) {
lookup[name] = 1;
result.push(name);
}
}

通过这种方式,您基本上避免了 indexOf/inArray 调用,并且您将获得一个可以比迭代对象的属性更快地迭代的数组——也是因为在第二种情况需要检查hasOwnProperty

当然,如果你只使用一个对象就可以了,你可以完全避免检查和 result.push,以防使用 Object.keys(lookup) 获取数组,但不会比这更快。

关于javascript - 从 JSON 中选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780508/

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