数组删除、去重 - JavaScript
2021-01-07 本文已影响0人
survivorsfyh
日常开发中经常会遇到对数组进行增删的情况发生,简单记录两个小例子,当前使用场景为监测列表的选中与取消记录操作;

首先,如下有两种实现方式可供参考,其中运用到了数组的 indexOf()、filter() 和 splice(),具体 code 如下:
方式一,通过 Array filter() 方法 搭配 indexOf() 方法 的方式:
let arr = this.taskIdsArr;
if (checked) {
arr.push(id); // 数组添加元素
this.taskIdsArr = arr.filter(function (element, index, self) { // 数组去重
return self.indexOf(element) === index;
});
console.log('[选中]' + this.taskIdsArr);
} else {
this.taskIdsArr = arr.filter(function(item) { // 数组移除元素
console.log(id);
console.log(item);
return item !== id;
});
console.log('[取消选中]' + this.taskIdsArr);
}
方式二:通过 indexOf() 方法 搭配 splice() 方法 的方式:
if (checked) {
this.taskIdsArr.push(id);
} else {
let index = this.taskIdsArr.indexOf(id); // 获取当前索引
this.taskIdsArr.splice(index, 1); // 移除该元素
}
console.log('[数据源] - 选中项:' + this.taskIdsArr);

以上便是此次分享的全部内容,希望能对大家有所帮助!