你可以使用类似的东西:
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;
}
}
注意:排序参数是可选的。(由于关联数组(对象)的键在内部存储为哈希值,因此它们以明显随机顺序返回。请注意,没有任何排序函数作为参数的 Array.sort() 始终按递增顺序执行字符串比较。作为任何值-type 可以转换为有意义的字符串表示,这也是一个合理的默认值。)
// 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];
}
}