Имея дело с JSON, возвращаемым с YQL, я обнаружил, что ищу способ извлечь все уникальные значения из массива.Уникальные значения массива
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
Это будет работать, если мне нужны только уникальные значения, но я извлекаю эти значения из объекта, который уже находится на стороне клиента (я делаю только один запрос YQL). –
@Q, справедливо. [eskimoblood's] (http://stackoverflow.com/questions/3308257/array-unique-values/3308650#3308650) ответ должен помочь вам. – salathe