如何消除一个数组里面重复的元素

本文介绍了一个JavaScript函数,用于从数组中移除重复的元素,通过检查元素是否已存在于新数组中来实现,确保了数组元素的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 //消除一个数组里重复的元素;
    var a = [1,3,5,12,1,34,2,56,23,12,34,90,35]
    function repeat (arr) {
        var obj = [];
        for(var i = 0;i<arr.length;i++){
            if(obj.indexOf(arr[i]) === -1){
                obj.push(arr[i])
            }
        }
        return obj
    }
console.log(repeat(a))
### 使用 Excel VBA 去除数组中的重复元素 在处理 Excel 数据时,经常遇到需要去除数组重复元素的情况。通过使用 `Dictionary` 对象可以高效地实现这一目标。 #### 方法一:利用 Dictionary 对象去重 此方法适用于一维数组,并且需要引用 Microsoft Scripting Runtime 库[^3]。下面是一个具体的例子: ```vba Sub 示例() Dim arr As Variant arr = Array(1, 2, 3, 3, 2, 4, 4, 4, 5) arr = 一维数组去重(arr) ' 输出结果以验证效果 Dim i As Integer For i = LBound(arr) To UBound(arr) Debug.Print arr(i) Next i End Sub Function 一维数组去重(ByRef arr As Variant) As Variant Dim dic As Object Set dic = CreateObject("scripting.dictionary") Dim i As Long For i = LBound(arr) To UBound(arr) If Not IsEmpty(arr(i)) And Len(CStr(arr(i))) > 0 Then If Not dic.exists(arr(i)) Then dic.Add arr(i), Nothing End If End If Next i ' 将字典键转换回数组 一维数组去重 = Application.Transpose(dic.keys()) End Function ``` 上述代码创建了一个名为 `一维数组去重` 的函数来移除输入的一维数组内的重复项,并返回一个新的不含重复值的数组[^4]。 #### 方法二:针对二维数组的操作 当面对的是来自 Excel 表格区域的数据(通常是二维数组),则可以通过遍历每一行或每列来进行类似的处理。这里提供一种基于 `Dictionary` 的解决方案用于处理整个表格范围内的数据: ```vba Sub 处理二维数组() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为实际的工作表名称 Dim rng As Range Set rng = ws.Range("A1:D10") ' 定义要操作的数据区域 Dim dataArr As Variant dataArr = rng.Value Dim uniqueData As Collection Set uniqueData = New Collection On Error Resume Next Dim row As Long, col As Long For row = LBound(dataArr, 1) To UBound(dataArr, 1) For col = LBound(dataArr, 2) To UBound(dataArr, 2) uniqueData.Add CStr(dataArr(row, col)), CStr(dataArr(row, col)) Next col Next row On Error GoTo 0 ' 清空原始区域并将唯一值写入新的位置 rng.ClearContents Dim index As Long For Each item In uniqueData index = index + 1 ws.Cells(index, 1).Value = item Next item End Sub ``` 这段脚本会读取指定区域内所有的单元格内容到内存中的二维数组里,接着运用集合对象 (`Collection`) 来存储唯一的条目,最后再把这些独特的记录放回到工作簿当中[^1]。 #### 注意事项 - 当涉及到多维度或多字段组合的情况下,可能还需要考虑更复杂的逻辑来确保正确识别和保留所需的独特组合。 - 如果是在 Mac OS 上运行,则需要注意某些特定功能可能会有所差异或者不可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值