【AiWork脚本开发基础】使用JavaScript将数组 [1, 2, 3, 4, 5, 6, 7, 8, 8,9]去重

AiWork开发文档

在官方文档的基础上,进行重新排版和优化。
一个优雅的文档,对于开发体验的提升,是效果显著的。
永久域名:aiwork.wiki

实现

将使用 Set 对象来实现JavaScript数组的去重,Set 是一种集合数据结构,它只允许唯一的值。

去重方法示例

/**
 * 去重数组中的重复元素
 * 
 * @param {Array} array - 要去重的数组
 * @returns {Array} - 返回去重后的新数组
 * @author 飞云
 * @wechat imfeiyun
 * @link  http://www.feiyunjs.com
 */
function removeDuplicates(array) {
    // 使用 Set 来存储唯一值
    const uniqueValues = new Set(array);
    
    // 将 Set 转换回数组并返回
    return Array.from(uniqueValues);
}

/**
 * 使用示例
 */
const originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 8, 9];
console.log('Original array:', originalArray);

// 调用去重方法
const deduplicatedArray = removeDuplicates(originalArray);
console.log('Deduplicated array:', deduplicatedArray);

代码说明

  1. removeDuplicates 函数:

    • 接收一个参数 array,这是要去重的原数组。
    • 创建一个 Set 对象 uniqueValues,并将原数组作为参数传入。Set 会自动去掉重复的值。
    • 使用 Array.from() 方法将 Set 转换回数组格式。
  2. 示例:

    • 在示例中,我们定义了一个包含重复元素的数组 originalArray,然后调用 removeDuplicates 函数去重,并打印结果。

运行效果

Original array: [1, 2, 3, 4, 5, 6, 7, 8, 8, 9]
Deduplicated array: [1, 2, 3, 4, 5, 6, 7, 8, 9]

其他去重方法

如果你想要其他实现方式,这里还有一个基于 filter() 方法的示例:

/**
 * 去重数组中的重复元素(使用 filter 方法)
 * 
 * @param {Array} array - 要去重的数组
 * @returns {Array} - 返回去重后的新数组
 * @author 飞云
 * @wechat imfeiyun
 * @link  http://www.feiyunjs.com
 */
function removeDuplicatesUsingFilter(array) {
    return array.filter((value, index) => {
        // 仅保留第一次出现的值
        return array.indexOf(value) === index;
    });
}

// 使用示例
const originalArray2 = [1, 2, 3, 4, 5, 6, 7, 8, 8, 9];
console.log('Original array:', originalArray2);

// 调用去重方法
const deduplicatedArray2 = removeDuplicatesUsingFilter(originalArray2);
console.log('Deduplicated array using filter:', deduplicatedArray2);

这个方法通过 filter() 方法保留每个值第一次出现的位置,进而去掉重复元素。

总结

你可以根据自己的需求选择使用 Set 或者 filter() 方法来实现数组去重。两种方法都很简单且有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值