JavaScript Set集合相关操作、Set转数组、数组去重

    技术2024-05-23  79

    JavaScript Set集合相关操作、Set转数组、数组去重

    Set创建Set对象Set加入(add方法)或删除(delete方法)key操作Set转数组及数组去重

    Set

    Set是一种类似于Map的数据结构,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key,这种特性就起到数据去重的效果,重复的数据不会被写入到Set中。

    创建Set对象

    //创建一个空的SET let sets = new Set(); //可以传入数组-数组转set let sets1 = new Set([1,2,3,4]); //Set(4) {1, 2, 3, 4} //重复数据不会添加到set中 let sets2 = new Set([1,2,2,4]); //Set(3) { 1, 2, 4 }

    Set加入(add方法)或删除(delete方法)key操作

    sets.add(1,2,5); //Set(1) {1} 只能加入第一个 sets.add(5); //Set(2) {1, 5} 加入一个key(5) sets.add(5); //Set(2) {1, 5} 重复加入无效 sets.delete(1); //true 表时元素删除成功 sets.delete(1); //false 表时元素删除失败,因为重复删除无效

    Set转数组及数组去重

    //使用Array 提供的from方法将Set集合转为数组 let arr = Array.from(sets1); //[ 1, 2, 3, 4 ] //数组去重 let arr2 = [1, 2, 3, 4, 2, 3]; arr2 = Array.from(new Set(arr2)); //[1, 2, 3, 4]

    当然,也可以使用for循环进行数组去重:

    let arr2 = [1, 2, 3, 4, 2, 3]; function arrDuplicateRemoval(arr){ let newArr = []; for(let i = 0; i < arr.length; i++){    let flag = true;    for(let j = 0; j < newArr.length; j++){      if(arr[i] == newArr[j]){        flag = false;      };    };    if(flag){      newArr.push(arr[i]);    }; } return newArr; } let a = arrDuplicateRemoval(arr2); console.log(a); //[1, 2, 3, 4]
    Processed: 0.016, SQL: 9