这个除了遍历意外恐怕没有更有效办法。
不用循环的话就用递归,不过效率还没循环高呢。
另外我写的这个是有问题的js数组是引用类型的,需要一个副本。
真打算用的 再改善改善
var arr = [{name:"aa"},{name:"bb"},{name:"cc"},{name:"dd"},{name:"zhangsan"}];
function doFind(name,arr){
if(!arr||arr.length<1){
return null;
}
var obj = arr.pop();
if(obj.name==name){
return obj
}
doFind(name,arr);
}
var obj = doFind("zhangsan",arr);
alert(obj?obj.name:obj);
~