Arrays coffeescript:循环数组中的对象
我对coffeescript相当陌生,正在尝试循环数组中的对象,但无法使其正常工作Arrays coffeescript:循环数组中的对象,arrays,for-loop,coffeescript,Arrays,For Loop,Coffeescript,我对coffeescript相当陌生,正在尝试循环数组中的对象,但无法使其正常工作 var val = [ {id: 1, Text: "first" }, {id: 2, Text: "Second" }, {id: 3, Text: "Third" } ] var idObj = 1 for idObj in val console.log('this is' + idObj) 从上面的代码中,我试图找到id为1的对象,但它对所有对象都返回true。 我
var val = [
{id: 1, Text: "first" },
{id: 2, Text: "Second" },
{id: 3, Text: "Third" }
]
var idObj = 1
for idObj in val
console.log('this is' + idObj)
从上面的代码中,我试图找到id
为1的对象,但它对所有对象都返回true。
我已经看到了如何在数组中循环的示例,但不确定它如何适用于数组中的对象
谢谢您的代码中有一些错误 首先,您不能在coffeescript中使用
var
关键字
接下来,在循环内和循环外重用变量idObj
,因此它被隐藏在循环内而不可用
而且代码和输出之间似乎不匹配,因为没有返回布尔值
以下是您正在尝试做的工作示例:
val = [
{id: 1, Text: "first" },
{id: 1, Text: "first" },
{id: 2, Text: "Second" },
{id: 3, Text: "Third" }
]
targetId = 1
for obj in val
if obj.id is targetId
targetObj = obj
console.log(targetObj)
我将idObj
重命名为targetId
,它保存您试图查找的对象的id
循环迭代对象数组,因此每个项都是对象。
我检查对象的id是否与您正在搜索的匹配,如果匹配,我将其分配给targetObj,以便您可以在循环后使用它
或者,您也可以使用一些可用的:
targetObj = (obj for obj in val when obj.id is 1)[0]