我试图迭代一个数组来查找属性是否匹配某些条件并检索条件适用的索引并考虑使用jquerys map方法。在找到我的问题here的确切解决方案和同样的问题之后,我推出了我的咖啡因以便让事情发生。
我的目标是:
newWaypoint = {waypoint:latlon.toString(), legStart:leg.start_location.toString() ,legNumber:legNo.toString()}
并将这些对象推送到一个简单的数组中:@newDraggableWaypoints.push newWaypoint
这是给我headeache的代码:
buildNewWaypointsFromDraggable:()->
item=@allLegWaypoints[0]
indexes = $.map(@newDraggableWaypoints, (obj, index) =>
index if obj.legStart is item
)
window.alert indexes.toString()
为什么会显示此消息?谢谢
答案 0 :(得分:1)
检索条件适用的索引
不,您的map
会为数组中的每个元素检索一些内容:index
如果条件已满足,则undefined
。如果要排除某些元素,则需要使用filter
。你可以做
indexes = @newDraggableWaypoints.map (obj, index) =>
index if obj.legStart is item
.filter (obj) ->
obj is not undefined
或
indexes = @newDraggableWaypoints
.map (obj, index) -> [obj, index]
.filter ([obj, i]) -> obj.legStart is item
.map ([o, index]) -> index