【发布时间】:2014-08-14 02:50:24
【问题描述】:
过滤包含列表对象的列表最有效的方法是什么。我一直在看下划线的 _.filter 函数,但这需要数组并返回数组。
我想取一个对象并用某个词过滤它。
例如,我将如何过滤:
[
{level: "Title 1", details: [
{real: "There we go", fake: "THERE_WE_GO"},
{real: "Where is it", fake: "WHERE_IS_IT"},
{real: "The dog jumped", fake: "THE_DOG_JUMPED"},
] },
{level: "Title 2", details: [
{real: "There it is", fake: "THERE_IT_IS"},
{real: "Car is flying", fake: "CAR_IS_FLYING"},
{real: "Driving is fun", fake: "DRIVING_IS_FUN"}
] },
{level: "Title 2", details: [
{real: "There he is", fake: "THERE_WE_GO"},
{real: "Where is the dog", fake: "WHERE_IS_THE_DOG"},
{real: "The dog died", fake: "THE_DOG_DIED"},
{real: "I am tired", fake: "I_AM_TIRED"},
]}
];
用“那个”这个词
这样它会返回
[
{level: "Title 1", details: [
{real: "There we go", fake: "THERE_WE_GO"},
{real: "The dog jumped", fake: "THE_DOG_JUMPED"},
] },
{level: "Title 2", details: [
{real: "There it is", fake: "THERE_IT_IS"},
] },
{level: "Title 2", details: [
{real: "There he is", fake: "THERE_WE_GO"},
{real: "Where is the dog", fake: "WHERE_IS_THE_DOG"},
{real: "The dog died", fake: "THE_DOG_DIED"},
]}
];
请注意,当按“the”这个词过滤时,我还想保留任何包含“the”这个词的东西,比如“There”……我只去检查“the”这个词是否" 位于细节数组内对象的“真实”索引中。
【问题讨论】:
-
那不是一个对象,而是一个对象数组。因此,下划线过滤对您来说效果很好。你当然需要编写过滤函数。您是否进行过任何可以显示代码的尝试?
-
ES5中有一个内置的filter,为什么需要underscore.js呢?
标签: javascript arrays object underscore.js javascript-objects