【发布时间】:2012-06-03 20:55:03
【问题描述】:
我有一个与此类似的对象:
var arr = {};
arr.planes = { prop1 : 'a', prop2 : 'b', prop3 : 'c' };
arr.trains = { prop1 : 'x', prop2 : 'y', prop3 : 'z' };
arr.autos = { prop1 : 'red', prop2 : 'orange', prop3 : 'blue' };
我正在尝试编写一个函数(快速且高效),它将基于嵌套在其中的键/值对返回最外层数组的键(或键数组,如果有超过 1 个)。比如:
function getKey(obj, prop, val) {
// do some stuff...
return key;
}
var myKey = getKey(arr, 'prop2', 'orange');
myKey 的值应该是“autos”。
我很确定这可以通过几个嵌套的 for 循环来完成,但这些数组相当大,我认为,尤其是使用 jquery 的 grep(),必须有更好的方法......或者也许不是——我现在只是被难住了。
任何见解将不胜感激!
【问题讨论】:
-
其次,这些是对象,而不是关联数组。
-
myKey的值不应该是autos吗? -
拍我的坏。是的,myKey 的值应该是“autos”。请忽略“其他键”。
标签: javascript jquery search object