Coffeescript 查询对象数组

Coffeescript 查询对象数组,coffeescript,Coffeescript,有人知道如何在coffeescript中查询哈希数组吗 例如,我有一个哈希数组,每个哈希都有一个“名称”和“设置”: 我想在这个数组中找到散列“name”为“x_axis_label”的元素 我怎样才能轻松地用咖啡脚本做到这一点 我需要为对象(键,对象)函数中的键提供某种值,\u并计算出它是否是词典的一部分…我只是很快就搞定了: data = [{"name":"color","setting":"red"},{"name":"scale_min","setting":"15"},{"name"

有人知道如何在coffeescript中查询哈希数组吗

例如,我有一个哈希数组,每个哈希都有一个“名称”和“设置”:

我想在这个数组中找到散列“name”为“x_axis_label”的元素

我怎样才能轻松地用咖啡脚本做到这一点


我需要为对象(键,对象)函数中的键提供某种
值,\u并计算出它是否是词典的一部分…

我只是很快就搞定了:

data = [{"name":"color","setting":"red"},{"name":"scale_min","setting":"15"},{"name":"scale_type","setting":"linear"},{"name":"x_axis_label","setting":"Weeks"}]

find = (i for i in data when i.name is 'x_axis_label')[0]

alert(find.setting)

如果您碰巧使用的是下划线.js,您可以使用:


如果您要重复执行此操作,总是寻找名称等于某个值的对象,那么最好将其从一个映射数组转换为一个键为名称的映射

data = [
  {"name":"color","setting":"red"}
  {"name":"scale_min","setting":"15"}
  {"name":"scale_type","setting":"linear"}
  {"name":"x_axis_label","setting":"Weeks"}
]

myMap = {}
for row in data
  myMap[row.name] = row.setting

alert(myMap['x_axis_label'])

与“惯用”解决方案相比,我总是更喜欢“多语言”解决方案。因此,您可以使用
Array.filter

data = [{"name":"color","setting":"red"},{"name":"scale_min","setting":"15"},{"name":"scale_type","setting":"linear"},{"name":"x_axis_label","setting":"Weeks"}]
find = (data.filter (i) -> i.name is 'x_axis_label')[0]
alert find.setting

这太棒了,这也是为什么我真的开始喜欢咖啡脚本的原因
data = [
  {"name":"color","setting":"red"}
  {"name":"scale_min","setting":"15"}
  {"name":"scale_type","setting":"linear"}
  {"name":"x_axis_label","setting":"Weeks"}
]

myMap = {}
for row in data
  myMap[row.name] = row.setting

alert(myMap['x_axis_label'])
data = [{"name":"color","setting":"red"},{"name":"scale_min","setting":"15"},{"name":"scale_type","setting":"linear"},{"name":"x_axis_label","setting":"Weeks"}]
find = (data.filter (i) -> i.name is 'x_axis_label')[0]
alert find.setting