【问题标题】:Querying Typescript array collection based on key基于key查询Typescript数组集合
【发布时间】:2016-10-25 05:35:30
【问题描述】:

我是 Typescript 的新手。我在 typescript 中有一个类型的数组。基本上包含集合元素作为

"ID": "669a8156-528c-43ba-8ed0-d07874534d1c",
"Name": "Temple",
"DeviceCount": "0",
"SiteCount": "0"

"ID": "5965ee85-2300-4c95-8743-b626f744082f",
"Name": "Building",
"DeviceCount": "2",
"SiteCount": "3"

..等等

如果我有 ID,如何从集合中查询 Name 属性

即类似于 LINQ 类型的表达式

var result = array.Where(item => item.ID == ID);

【问题讨论】:

    标签: javascript linq collections typescript


    【解决方案1】:

    您可以为此使用 JavaScript Array#filter 方法,该方法返回一个匹配数组,与您的 LINQ 代码非常相似:

    array.filter(item => item.ID === ID)[0].name;
    

    你也可以使用Array#find,但它没有很好的浏览器支持,所以你可能需要一个用于 Opera 和 Internet Explorer 的 polyfill:

    array.find(item => item.ID === ID).name;
    

    阅读相关文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

    【讨论】:

    • TypeScript的表示方式和JS一样吗
    • 是的,这段代码可以在 TypeScript 和现代 JavaScript 中工作,除了 TypeScript 会为你编译箭头函数x => y,否则 Safari 和其他一些浏览器不支持。跨度>
    • 不幸的是,它对我不起作用。尽管该集合具有特定条目。
    猜你喜欢
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2018-03-22
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多