JavaScript根据某个特定的值删除数组中的指定元素

时间:2024-02-24 14:47:28

在项目中,我们经常需要根据某个特定的值删除数组中的元素,怎么删除呢?

我们可以用到splice()这个方法

 

----- splice的定义引用于http://www.w3school.com.cn/jsref/jsref_splice.asp

1.简单的一维数组

var arr = [ a, b, c, d, f……]

如上数组,想要删除b这个元素的方法:

function delItem(item, list) {
   // 表示先获取这个元素的下标,然后从这个下标开始计算,删除长度为1的元素
   list.splice(list.indexOf(item), 1)
}
// 可以将‘b’和数组arr作为参数传递给函数delItem
// 调用
delItem(b, arr);
// 返回的数组为:
arr = [a, c, d, f……]

2.包含键值对的数组:

var arrayJson= [
  {
    "id": "1",
    "name": "jack",
    "age": "24"
  },
  {
    "id": "2",
    "name": "mack",
    "age": "25"
  },
  {
    "id": "3",
    "name": "peak",
    "age": "26"
  }
]

这种数组根据某个值删除的话,想要根据一个独一无二的值(除非,你想删除比如age都为24的元素也可以),比如每个元素都不重复的id

function deleteItem (item, list) {
  // 先遍历list里面的每一个元素,对比item与每个元素的id是否相等,再利用splice的方法删除
  for (var key in fileList) {
    if (list[key].id === item) {
      list.splice(key, 1)
    }
  }
}
// 例子,我想删除数组中id为2的元素
deleteItem(2, arrayJson);
// 即可删除arrayJson中id为2的元素

 玩玩儿,嘿嘿

相关文章