首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >typescript parseInt()导致编译错误

typescript parseInt()导致编译错误
EN

Stack Overflow用户
提问于 2019-04-29 02:00:25
回答 1查看 175关注 0票数 3

我对typescript相当陌生,我正在尝试简单地从我从mysql数据库获取的数组中删除一个对象,下面是我尝试这样做的方法,

代码语言:javascript
复制
// this is the format of the fetched data
let permissions = [
    {
        id: '1',
        permission: 'permission one'
    },
    {
        id: '2',
        permission: 'permission two'
    },
    {
        id: '3',
        permission: 'permission three'
    },
    {
        id: '4',
        permission: 'permission four'
    },
]

permissions = permissions.filter(permission => {
    return parseInt(permission.id, 10) !== 2      // 2 is just an example
});

当我尝试这种方式时,我得到以下编译错误

”类型的参数不能赋值给“string”类型的参数

我也尝试了下面的方法,但奇怪的是,它总是删除最后一个索引!

代码语言:javascript
复制
const removeIndex = permissions
       .map(item => item.id)
       .indexOf(2);  // also 2 is an example 
   
permissions.splice(removeIndex, 1);

有人能告诉我错误在哪里吗?另外,这两种方法中哪一种性能更好?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-29 02:18:02

你为什么不试试这个呢?

代码语言:javascript
复制
permissions = permissions.filter(permission => +permission.id !== 2);

在这里,Unary plus (+)运算符非常适合将字符串计算为数字

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55893096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档