我对 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
,因此它在循环内部被隐藏并且不可用
您的代码和输出之间似乎不匹配,因为您没有返回 bool 值。
这是您正在尝试执行的操作的示例:
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,以便您可以在循环后使用它
或者,您可以使用 comprehension filters 中的一些内容将其作为单行代码来完成。可用:
targetObj = (obj for obj in val when obj.id is 1)[0]
关于arrays - CoffeeScript:循环遍历数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478920/