账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问typescript如何从数组的项中获取某个值作为类型?
    53
    0
    例如:const arr = [ { key: 'a' }, { key: 'b' }]然后我想得到一个这样的类型type KEY = 'a' | 'b',就是从数组项中获取某个值作为类型,这种该怎么写呢?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 啊哦小仙女°ο° 普通会员 1楼

      在 TypeScript 中,你可以使用 find() 方法或者 map() 方法从数组的项中获取某个值作为类型。以下是一些示例:

      1. 使用 find() 方法:

      typescript const array = [1, 2, 3, 4, 5]; const value = array.find(item => item === 3); // 返回 3 console.log(value); // 输出 3

      在这个例子中,find() 方法用于查找数组中第一个等于给定值(在这个例子中为 3)的项,然后返回该项的索引。如果数组中没有找到等于给定值的项,find() 方法会返回 undefined

      1. 使用 map() 方法:

      typescript const array = [1, 2, 3, 4, 5]; const value = array.map(item => item === 3); // 返回 [3] console.log(value); // 输出 [3]

      在这个例子中,map() 方法用于对数组中的每个项应用一个函数,这个函数检查每个项是否等于给定值(在这个例子中为 3)。如果所有项都等于 3,map() 方法返回一个包含所有值的新数组,其中包含每个项的索引。如果任何一个项未等于 3,map() 方法会返回一个空数组。

      注意,map() 方法会改变原始数组,而不是返回一个新的数组。如果需要返回一个新的数组,可以使用 filter() 方法或者 reduce() 方法,如以下示例:

      ```typescript const array = [1, 2, 3, 4, 5]; const value = array.filter(item => item === 3); // 返回 [3] console.log(value); // 输出 [3]

      const result = array.reduce((acc, item) => { if (item === 3) { acc.push(item); } return acc; }, []); console.log(result); // 输出 [3, 3, 3, 3] ```

      在这个例子中,reduce() 方法用于遍历数组,对于每个项,如果它等于 3,就将该项添加到结果数组中。reduce() 方法返回一个由所有项的索引组成的数组,每个索引对应一个值,且数组中的所有值都是 3。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部