将一个数添加到数组中,如果数组中有则删除掉,这里可以用作vue+element ui的自定义多选,勾选上添加到数组,取消勾选则从数组中删除;
代码都是经历实测的!!!
1、删除数组指定的某个元素
//获取数组中数值的下标,val:要删除的元素,ids:数组
indexOf(val,ids) {
for (let i = 0; i < ids.length; i++) {
//获取当前值的下标
if (ids[i] === val)
return i;
}
return -1;
},
//多选赋值ids,val:要删除的元素,ids:数组
ids(val) {
//this.selectionList在vue页面中的数组
let ids = this.selectionList;
//检索下标,判断当前值(或对象是否在数组中); 在则返回下标,不在则返回-1
let index = this.indexOf(val,ids);
if (ids.length >0 && index > -1) {
//删除数组中的某个元素(在取消勾选时,删除数组中的值)
ids.splice(index,1);
} else {
//添加到数组中
ids.push(val);
//用逗号隔开
ids.join(",");
}
}
2、数组中(删除某一项)、(替换某一项)、(往数组中添加元素)
splice(index,len,[item]) 注释:该方法会改变原始数组。
splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值。
index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空。
如:arr = [‘a’,‘b’,‘c’,‘d’]
2.1 删除
//删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
var arr = ['a','b','c','d'];
arr.splice(1,1);
console.log(arr);
//['a','c','d'];
//删除起始下标为1,长度为2的一个值(len设置2)
var arr2 = ['a','b','c','d']
arr2.splice(1,2);
console.log(arr2);
//['a','d']
2.2 替换
//替换起始下标为1,长度为1的一个值为‘ttt',len设置的1
var arr = ['a','b','c','d'];
arr.splice(1,1,'ttt');
console.log(arr);
//['a','ttt','c','d']
var arr2 = ['a','b','c','d'];
arr2.splice(1,2,'ttt');
console.log(arr2);
//['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1
2.3 添加
len设置为0,item为添加的值
var arr = ['a','b','c','d'];
arr.splice(1,0,'ttt');
console.log(arr);
//['a','ttt','b','c','d'] 表示在下标为1处添加一项'ttt'
delete方法删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
var arr = ['a','b','c','d'];
delete arr[1];
arr;
//["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined
转载请附上原文网址,谢谢亲的支持!!!