Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays coffeescript:循环数组中的对象_Arrays_For Loop_Coffeescript - Fatal编程技术网

Arrays 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。 我

我对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。 我已经看到了如何在数组中循环的示例,但不确定它如何适用于数组中的对象


谢谢

您的代码中有一些错误

首先,您不能在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]