You can try following script. It finds indices of repeated values (in this case 102) in column 0 of list variable. Finally, these indices are used for printing repeated paired values in corresponding list.
var list = ee.List([
[101, 12155],
[123, 12333],
[102, 12157],
[102, 12222],
[102, 12244],
[103, 13333],
[103, 12158],
]); // This list contains thousands of paired values
print("original list", list);
var Column = 0;
var keyValues = list.map(function(inner) {
return ee.List(inner).get(Column);
});
print("selecting column where 102 is", keyValues);
var num = ee.Number(102);
var seq = ee.List.sequence(0, keyValues.size().subtract(1));
var indexRep = seq.map(function (e) {
var list = keyValues.map(function (ele) {
return ee.Algorithms.If(ee.Number(ele).eq(num), ele, 0);
});
return ee.Algorithms.If(ee.Number(ee.List(list).get(e)).neq(0), e, -1);
}).removeAll([-1]);
print("index of 102 values", indexRep);
var pairedRep = indexRep.map(function (ele) {
return list.get(ele);
});
print("paired values with 102", pairedRep);
Result of running above script in GEE console editor is as follows:
paired values with 102
[[102,12157],[102,12222],[102,12244]]
Editing Note:
Modified above script for printing only values (102 as test key value):
var list = ee.List([
[101, 12155],
[123, 12333],
[102, 12157],
[102, 12222],
[102, 12244],
[103, 13333],
[103, 12158],
]); // This list contains thousands of paired values
print("original list", list);
var Column = 0;
var keyValues = list.map(function(inner) {
return ee.List(inner).get(Column);
});
print("selecting column where 102 is", keyValues);
var num = ee.Number(102);
var seq = ee.List.sequence(0, keyValues.size().subtract(1));
var indexRep = seq.map(function (e) {
var list = keyValues.map(function (ele) {
return ee.Algorithms.If(ee.Number(ele).eq(num), ele, 0);
});
return ee.Algorithms.If(ee.Number(ee.List(list).get(e)).neq(0), e, -1);
}).removeAll([-1]);
print("index of 102 values", indexRep);
var valuesPairedRep = indexRep.map(function (ele) {
return ee.List(list.get(ele)).get(1);
});
print("values for repeated 102", valuesPairedRep);
Modified script by using 'iterate' method (101 as test key value):
var list = ee.List([
[101, 12155],
[123, 12333],
[102, 12157],
[102, 12222],
[102, 12244],
[103, 13333],
[103, 12158],
]); // This list contains thousands of paired values
print("original list", list);
var Column = 0;
var keyValues = list.map(function(inner) {
return ee.List(inner).get(Column);
});
print("selecting column where 101 is", keyValues);
var num = ee.Number(101);
var new_seq = ee.List.sequence(0, 6);
var first = new_seq;
var appendValues = function(iter, previous) {
return ee.List(previous)
.set(iter, ee.Algorithms
.If(ee.Number(ee.List(list.get(iter)).get(0)).eq(num), iter, -1));
};
var indexRep = ee.List(new_seq.iterate(appendValues, first))
.removeAll([-1]);
print("indices for 101", indexRep);
var valuesPairedRep = indexRep.map(function (ele) {
return ee.List(list.get(ele)).get(1);
});
print("values for 101", valuesPairedRep);