在处理从YQL返回的JSON时,我发现自己正在寻找一种方法从数组中提取所有唯一值。数组唯一值
function uniqueArrayValues(o){
var items = o.query.results.row,
output = [];
function check(val){
for(var c=0; c<output.length; c++){
if(output[c] === val){
return false;
}
}
return true;
}
for(var i=1; i<items.length; i++){
if(check(items[i].team)){
output.push(items[i].team);
}
}
return output;
}
该代码看起来有点太“忙”,我想知道是否有更优雅的方式从数组中提取唯一值。
您可以将YQL查询中过滤重复值,如果是一个选项给你。参见http://developer.yahoo.com/yql/guide/sorting.html ---类似'| unique(field =“row.team”)(该字段可能不同,具体取决于结果结构)。 – salathe 2010-07-22 12:02:15
这将工作,如果我只需要唯一的值,但我从客户端(我只提出一个YQL请求)的对象中提取这些值。 – 2010-07-22 13:39:52
@Q,够公平的。 [eskimoblood's](http://stackoverflow.com/questions/3308257/array-unique-values/3308650#3308650)答案应该帮助你。 – salathe 2010-07-22 14:44:16