我很好奇,如果这是一个好的执行Array.filter()
方法。这是Array.filter()方法用于从数组中搜索和检索Object实例的有效用法吗?
//Array of generic Object instances representing galleries.
//The images property is empty for the example
var galleries:Array = new Array();
galleries[0] = {name: 'Portraits', images: new Array()};
galleries[1] = {name: 'Landscapes', images: new Array()};
galleries[2] = {name: 'Still Lifes', images: new Array()};
//Returns a gallery Object by the specified name
function getGallery(galleryName:String):Object
{
function isGallery(element:*, index:int, arr:Array):Object
{
return (element.name == galleryName);
}
var arr:Array = galleries.filter(isGallery);
return arr[0];
}
var gallery:Object = getGallery('Landscapes');
if(gallery != null)
{
trace(gallery.name);
}
else
{
trace('Not found.');
}
这是我用以前的功能:
function getGallery(galleryName:String):Object
{
for each(var gallery:Object in galleries)
{
if(galleryName == gallery.name)
{
return gallery;
}
}
return null;
}
我无法弄清楚回调函数的实现为filter()
方法,其中回调是getGallery()
功能之外。我想知道是否有办法在getGallery
范围之外获得isGallery
函数?
这是非常很有帮助。匿名函数的紧凑方面现在很有意义。此外,你的建议,使画廊一个对象是辉煌的。谢谢! – 2010-07-15 16:33:00
很高兴帮助:) – LiraNuna 2010-07-16 03:30:27