3

JavaScript的数组中默认不支持删除指定元素的操作,如

let book_id = [1,2,3,4]
book_id.delete(4) //错误,JS数组没有该方法

因此,解决的办法有

  • 使用集合Set

ES6中新加入了集合类型Set(),因为集合本身支持add(),delete(),remove(),forEach()等操作,因此可以直接将Array()转化为Set()

let book_id = new Set([1,2,3,4])
book_id.delete(4)
console.log(book_id)  //Set { 1, 2, 3 }

但要注意到,Set()本身的限制

Set是一种无重复值的有序列表,允许对它包含的数据进行快速访问,从而增加了一个追踪离散值的更有效方式

因此,如果本身要操作的数据不符合Set()的要求,则要用到ES5原生方法

  • 使用indexOf()

其实是通过indexOf()找到要删除元素在数组中的索引,然后用splice()删除

let book_name = ['1984','动物庄园','乌合之众']
let i = book_name.indexOf('动物庄园')
book_name.splice(i,1)
console.log(book_name)  //[ '1984', '乌合之众' ]

搞定!


sls0927
32 声望2 粉丝