Android Studio избегает «делать» во время работы

Вы можете использовать словарь, подобный этому. В основном вы назначаете значение, которое вы хотите отличить как ключ в словаре. Если ключ не существовал, вы добавляете это значение как отдельное.

var unique = {};
var distinct = [];
for( var i in array ){
 if( typeof(unique[array[i].age]) == "undefined"){
  distinct.push(array[i].age);
 }
 unique[array[i].age] = 0;
}

Вот рабочая демонстрация: http://jsfiddle.net/jbUKP/1

Это будет O (n), где n - количество объектов в массиве, а m - количество уникальных значений. Существует не более быстрый способ, чем O (n), потому что вы должны проверять каждое значение хотя бы один раз.

Производительность

http://jsperf.com/filter-versus- dictionary Когда я запускал этот словарь, он был на 30% быстрее.

0
задан Cœur 13 June 2018 в 02:06
поделиться