Front-end

数组删除、去重 - 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);

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

上一篇 下一篇

猜你喜欢

热点阅读