使用 GEE 代码编辑器从从特征中提取的现有列表中创建唯一值列表

Using GEE code editor to create unique values list from existing list pulled from feature

我在 Google Earth Engine 代码编辑器中工作。我有一个包含多个状态的火灾的要素集合,需要生成一个唯一的状态列表,用于选择小部件。我正在尝试编写一个函数,该函数获取所有火灾的状态值列表,创建一个新列表,然后将新的状态值添加到新的唯一列表中。我有 运行 下面的代码,没有收到任何错误消息,但输出仍然是 statesUnique = []。谁能给我指出正确的方向,让新列表填充各州的唯一值?

我的代码:

// List of state property value for each fire
var states = fire_perim.toList(fire_perim.size()).map(function(f) {
  return ee.Feature(f).get('STATE');
}).sort();
print('States: ', states);

// Create unique list function
var uniqueList = function(list) {
  var newList = []
  var len = list.length;
  for (var i = 0; i < len; i++) {
    var j = newList.contains(list[i]);
    if (j === false) {
      newList.add(list[i])
    }
  }
  return newList
};

// List of unique states
var statesUnique = uniqueList(states);
print('States short list: ', statesUnique)

好吧,我没有想出这个答案,工作中的一些人帮助了我,但我想 post 答案所以这是一个解决方案:

var state_field = 'STATE'
var all_text = 'All states'
// Function to build states list
var build_select = function(feature_collection, field_name, all_text) {
  var field_list = ee.Dictionary(feature_collection.aggregate_histogram(field_name))
                     .keys().insert(0, all_text);
  return field_list.map(function(name) {
    return ee.Dictionary({'label': name, 'value': name})
  }).getInfo();
};

var states_list = build_select(fire_perim, state_field, all_text)
print(states_list)