我必须检查B是在哪个索引中?我怎么能摆脱B?说我有一个函数可以接收一个可能是A,B,C的参数
let grade = ['A','B','C']
delete grade['B']; // this won't work?
console.log(grade)
答案 0 :(得分:1)
如果您真的致力于在数组上使用delete
运算符,那么就可以这样:
let grade = ['A', 'B', 'C'];
delete grade[grade.indexOf('B')];
但请注意,这并不能完成您可能想要做的事情。更清楚的是,我假设您希望上面的操作返回['A', 'C']
。它实际上没有。相反,您在索引1处获得undefined
(之前存在值B
)。
console.log(grade);
['A', undefined x 1, 'C']
从阵列中正确替换B
的最合适的操作是使用Array#splice
。例如:
let grade = ['A', 'B', 'C'];
grade.splice(grade.indexOf('B'), 1);
console.log(grade);
['A', 'C']