我对Typescript还是很陌生,我正试图从从mysql数据库中获取的数组中删除一个对象,这是我尝试执行的操作,
// 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
});
当我尝试这种方式时,出现以下编译错误
'number'类型的参数不能分配给'string'类型的参数
我也尝试了以下方法,但奇怪的是,它总是删除最后一个索引!
const removeIndex = permissions
.map(item => item.id)
.indexOf(2); // also 2 is an example
permissions.splice(removeIndex, 1);
有人可以告诉我错误在哪里吗? 以及这两种方法中哪个更有效? 预先感谢
答案 0 :(得分:4)
你为什么不试试这个
permissions = permissions.filter(permission => +permission.id !== 2);
Unary plus (+)运算符非常适合将字符串评估为数字