coffeescript: 循环浏览数组中的对象。

问题描述 投票:0回答:1

我对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.我看到过如何在数组中循环的例子,但不知道对数组中的对象是如何工作的。

谢谢你

arrays for-loop coffeescript
1个回答
1
投票

你的代码中存在一些错误

首先,你不能使用 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)

我把它改名为 idObjtargetId 其中包含了你要找的对象的id。

循环会遍历一个对象数组,所以每个项目都是对象.我检查对象的id是否符合你要搜索的东西,如果符合,我就把它分配给targetObj,这样你就可以在循环之后使用它了。

另外,你也可以将它作为一个单行本,使用一些列的 理解力过滤器 可用。

targetObj = (obj for obj in val when obj.id is 1)[0]
© www.soinside.com 2019 - 2024. All rights reserved.