Вы могли бы использовать что-то вроде:
function getKeyListFor(obj, term, sortOpt) {
var keys=[];
for (var k in obj) {
if (obj[k] === term) keys.push(k);
}
if (keys.length) {
if (sortOpt) keys.sort();
return keys;
}
else {
return null;
}
}
Примечания: Род-аргумент будет факультативным. (Поскольку ключи ассоциативных массивов (объектов) хранятся внутри себя как хэши, они возвращаются, по-видимому, в произвольном порядке else. Разумеется, что Array.sort() без какой-либо функции сортировки в качестве аргумента всегда выполняет сравнение строк в порядке возрастания. -типа могут быть преобразованы в осмысленного строкового представления, это также здравомыслящий по умолчанию)
// Usage example
var fruitColors = {
'banana': 'yellow',
'apple': 'red',
'orange': 'orange',
'strawberry': 'red'
}
var redList = getKeyListFor(fruitColors, 'red', true);
// returns ['apple', 'strawberry']
var blueList = getKeyListFor(fruitColors, 'blue');
// returns null
if (blueList) {
// delete all blue entries
for (var i=0; i<blueList.length; i++) {
var key = blueList[i];
delete fruitColors[key];
}
}
'Object.keys (assArray)'? –