js 数组中有多个相同的类,每个类中都有一个name的属性,如何得到数组中,name的值等于zhangsan的对象

JavaScript023

js 数组中有多个相同的类,每个类中都有一个name的属性,如何得到数组中,name的值等于zhangsan的对象,第1张

这个除了遍历意外恐怕没有更有效办法。

不用循环的话就用递归,不过效率还没循环高呢。

另外我写的这个是有问题的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)

~

思路:先找到所有.red类的对象集合:obj_div

然后取含有绿色的那个:div_hg

然后找到这个里面的最后一个孩子(green)

1、找到对象集合 var obj_div = document.getElementsByClassName("red")

2、取出含有绿色的那个div_hg: var div_hg = obj_div[obj_div.length-1]

3、得到最后div里面的最后一个孩子:var green = div_hg.Children[div_hg.Children-1]

具体代码和验证自己做吧,只是大体的思路。

不知道是不是要实现这个,有理解错的地方,可以留言