【发布时间】:2012-06-20 19:29:58
【问题描述】:
我正在尝试尽可能高效地使用 CoffeeScript 推导式。我想我已经完成了基本的映射——将一个列表变成另一个列表——但搜索对我来说仍然很冗长。
假设我有一张商品到商店的地图:
shopMap:
toyStore: ["games", "puzzles"]
bookStore: ["novels", "picture books"]
并且,给定一件商品,我想知道它在哪家商店。在 CoffeeScript 中最好的方法是什么?
以下是我在 JavaScript 中的表现:
var shop = findShop(item);
function findShop(item) {
for (shop in shopMap)
itemList = shopMap[shop]
for (i = 0, ii = itemList.length; i<ii; i++) {
if (itemList[i] === item) {
return shop;
}
}
}
}
我使用了一个函数来让它通过 return 语句快速跳出循环,而不是使用中断,但是这个函数有点丑陋,因为它只被使用一次。
那么有没有更短的 CS 等价物,最好是不需要创建新函数的?
【问题讨论】:
标签: coffeescript list-comprehension