在项目中,我们经常需要根据某个特定的值删除数组中的元素,怎么删除呢?
我们可以用到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的元素
玩玩儿,嘿嘿