How to find a value into an Array of Obects
我在javascript中有一个对象数组:
1 2 3 4 5 6 7 8 9 10 11
| 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
- 你试过什么?
- 我试过inarray,stackoverflow.com/questions/5424488/…,和stackoverflow.com/questions/6116474/…
- var在使用时是一个可爱的小东西;)添加到数组中应该使用push来避免使用该计数变量。然后解决方案就是使用filter。
您可以使用filter。
1 2 3
| arrayFocal.filter(function(obj){
return obj.name=='Name';
}); |
它将返回与name匹配的对象数组。如果你只想要第一个,你可以买一个。
- 但是,请注意,在IE9之前,这在IE中不起作用。如果您想要更旧的浏览器支持,您需要想出一个不同的解决方案,或者使用第三方库,如underline.js。
- 是的,它在铬合金中工作…但在这里我们仍然使用IE 8;。/
- 有关DIY解决方案的方法,请参见本页:devcurry.com/2011/02/filter-array-using-javascript.html然后使用上面描述的@mritunjay过滤方式,而不是他们在该示例中使用的function isEven...函数。
我得到了解决方案:
正如@mritunjay建议的那样:
您可以使用filter。
1 2 3
| arrayFocal.filter(function(obj){
return obj.name=='Name';
}); |
但是我使用的是IE8,它不支持filter。因此,我们提供了filter()方法的实现,正如@jason m.batchelor建议的那样:http://www.devcurry.com/2011/02/filter-array-using-javascript.html
使用下划线
1
| _.findWhere(arrayFocal, {name: name}) |
- 我试图使用alert( _.findWhere(arrayFocal, {name: nomeFocal}) );,但它返回一个错误:未捕获引用错误:u未定义
- 当然,您必须包含下划线:—)
- 但是我要找的名字在变量中
- 是的,大概是名为nameFocal的var。