Javascript 如何在对象数组中查找值

Javascript 如何在对象数组中查找值,javascript,arrays,Javascript,Arrays,我有一个Javascript对象数组: function focal( name, data ) { this.name = name; this.data = data; } count = 0; arrayFocal = []; arrayFocal[count] = new focal( "Name", "12/08/2014" ); count++; 现在我想按名称查找arrayFocal 注意:IE 8您可以使用过滤器 arrayFocal.filter(func

我有一个Javascript对象数组:

function focal( name, data )
{
    this.name = name;
    this.data = data;
}

count = 0;

arrayFocal = [];
arrayFocal[count] = new focal( "Name", "12/08/2014" );
count++;
现在我想按名称查找
arrayFocal

注意:IE 8

您可以使用
过滤器

arrayFocal.filter(function(obj){
    return obj.name=='Name';
});
arrayFocal.filter(function(obj){
    return obj.name=='Name';
});
它将返回
name
匹配的对象数组。如果您只想要第一个,您可以使用下划线
[0]

_.findWhere(arrayFocal, {name: name})
我得到了解决方案:

正如@Mritunjay所建议的:


您可以使用
过滤器

arrayFocal.filter(function(obj){
    return obj.name=='Name';
});
arrayFocal.filter(function(obj){
    return obj.name=='Name';
});
但我使用的是IE8,它不支持
过滤器

因此,我们为filter()方法提供了一个实现,正如@Jason M.Batchelor所建议的:

我试过inArray,,当你使用它时,
var
是一件可爱的小东西;)应该使用
push
向数组中添加,这样可以避免使用count变量。然后解决方法就是使用
过滤器
注意,这在IE 9之前的IE中不起作用。如果你想获得更老的浏览器支持,你需要想出一个不同的解决方案,或者使用第三方库,如underline.js。有关DIY解决方案的方法,请参阅本页:然后使用上文所述的@Mritunjay过滤方式,我尝试使用
alert(u.findWhere(arrayFocal,{name:nomeFocal}))
但它返回一个错误:uncaughtreferenceerror:u未定义,但我要查找的名称在varYes中,可能是名为
namefocar