`

hasOwnProperty实现剔除数组中重复项

 
阅读更多
hasOwnProperty是用来判断一个对象是否有你给出名称的属性或对象。
需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
格式如下: object.hasOwnProperty(proName);

判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自Object.prototype的hasOwnProperty方法。

-----------------------------------------------------

利用hasOwnProperty,我们可以实现剔除数组中重复项:
/**
 * 针对字符串或者数字数组,剔除数组中重复项("123"与123看做相同)
 */
function removeDuplicates(arr){
    var i, len=arr.length;
    var array=[], obj={};
    for(i=0; i<len; i++){
        if(!obj.hasOwnProperty(arr[i])){
            array.push(arr[i]);
            obj[arr[i]] = true;
        }
    }
    return array;
}
分享到:
评论

相关推荐

    JS基于对象的特性实现去除数组中重复项功能详解

    基于对象的key唯一性,我们可以设计一个高效去除数组中重复项的方法。实现步骤分为两个主要部分: 1. 将待去重的数组转换成一个JavaScript对象。在这个对象中,数组元素作为对象的属性名(key),而属性值(value)...

    js 巧妙去除数组中的重复项

    在JavaScript编程中,处理数组并...总的来说,YUI源码中提供的这种方法是一种简洁且高效的去除数组重复项的技巧,特别适合处理大量数据。然而,在处理更复杂的数据结构时,开发者可能需要寻找其他适应性强的解决方案。

    javascript 删除数组中重复项(uniq)

    总之,JavaScript中删除数组重复项的方法多种多样,可以根据具体需求选择最合适的实现。考虑到兼容性和性能,使用`Array.indexOf()`和自定义`indexOf`方法相结合的策略是一种常见的做法。在处理复杂类型的数组时,...

    利用hasOwnProperty给数组去重的面试题分享

    hasOwnProperty hasOwnProperty是javascript中用于检测对象是否...有一个用hasOwnProperty实现数组去重的方法: var arr = ['a', 'b', 'c', 'b']; function uniqueArr(arr){ var unique = [], temp = {}; for(var

    JavaScript基于对象去除数组重复项的方法

    2. **对象转数组**:将对象的键收集到一个新的数组中,这可以通过遍历对象的所有属性并检查`hasOwnProperty`方法来实现。这样,我们得到了一个只包含不重复元素的新数组。 ```javascript var keys = function(obj...

    js在数组中删除重复的元素自保留一个(两种实现思路)

    - 在ES6及以后的版本中,可以使用更简洁的代码,例如利用 `Set` 对象来去除数组的重复项,使用 `Array.prototype.filter` 或者 `Array.prototype.reduce` 等方法来实现数组去重。 - 在实际项目开发中,考虑到代码的...

    理解JAVASCRIPT中hasOwnProperty()的作用

    JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。 hasOwnProperty()使用方法: object.hasOwnProperty(proName)其中参数object是必选项。一个对象的实例。proName是必...

    js数组的深拷贝

    总结来说,JavaScript中的数组深拷贝有多种实现方式,选择哪种取决于具体的需求和场景。在处理简单数据时,可以考虑使用JSON.parse和JSON.stringify;如果需要处理复杂的嵌套结构,递归遍历或者使用Lodash库会更合适...

    JavaScript数组

    数组是JavaScript中一种存储多个数据项的数据结构。它是一系列按顺序排列的元素的集合,每个元素都有一个数字索引,从0开始递增。数组中的元素可以是任何类型的数据,包括其他数组或对象。 **数组特性:** - **弱...

    js 模拟实现类似c#下的hashtable的简单功能代码

    1、实现思路:主要就是利用原型(prototype)的hasOwnProperty方法,确定对象中的项是该添加、移除还是取出某个匹配的项等。hasOwnProperty比遍历数组取值灵巧快速的地方在于:至少从代码上来看,它是O(1)复杂度的...

    js判断数组key是否存在(不用循环)的简单实例

    实例如下: var aaa = { "0":"a", "1":"b", "2":"c", ...以上这篇js判断数组key是否存在(不用循环)的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    js 数组的变化

    在JavaScript中,数组是一种特殊类型的数据结构,可以存储多个值,并通过索引来访问这些值。JavaScript数组不仅可以包含基本数据类型(如字符串、数字、布尔值),还可以包含复杂数据类型,如对象和其他数组,这体现...

    javascript中hasOwnProperty() 方法使用指南

    hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性。 语法 obj.hasOwnProperty(prop) 参数 •prop •要检测的属性名称。 描述 所有继承了 Object.prototype 的对象都会从原型链上继承到 ...

    js利用apply(), Math object, js数组,对象完全智能验证

    在提供的压缩包文件"validate"中,很可能包含了实现这些验证功能的示例代码或者练习,供学习者进一步理解和实践JavaScript中`apply()`的应用、Math对象的使用以及数组和对象的验证方法。通过深入学习和实践这些知识...

    js实现数组和对象的深浅拷贝

    在JavaScript中,有几种方法可以实现浅拷贝,如使用Object.assign()方法或者数组的concat()或slice()方法。当然,也可以通过手动实现一个浅拷贝函数: ```javascript function shallowCopy(target) { if (typeof ...

    JS判断两个数组或对象是否相同的方法示例

    总之,比较JavaScript中数组或对象的相同性是一个涉及到数据结构理解和算法实现的问题。在实际应用中,开发者需要根据需要比较的数组或对象的复杂程度来选择合适的方法,并且可能需要自定义比较逻辑以适应特定的需求...

    JavaScript中数组去重的5种方法

    因此,可以利用Set的特性轻松实现数组去重。 ```javascript let list = [1, 1, 'a', 'a', true, true, false, false, null, '', null, '', undefined, undefined]; let list1 = Array.from(new Set(list)); // [1, ...

    JavaScript中如何对多维数组(矩阵)去重的实现

    `Set`数据结构在处理字符串数组去重时提供了便利,因为它能自动去除重复项。这些方法不仅适用于单个数组,还可以扩展到多维数组,帮助开发者在处理复杂数据结构时保持数据的唯一性。在实际项目中,可以根据具体需求...

Global site tag (gtag.js) - Google Analytics