You could use something like:
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;
}
}
Note: The sort-argument would be optional. (Since keys of associative arrays (objects) are stored internally as hashes, they are returned in apparently random order else. Mind that Array.sort() without any sorting function as an argument always performs a string comparison in incrementing order. As any value-type may be converted to a meaningful string representation, this is also a sane default.)
// 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)?