数组中包含数组,怎么去重?

比如数组:[[{a:1},{a:1,b:2}],[{a:1}],[{a:1},{a:1,b:2}]]

let arr = [[{a:1},{a:1,b:2}],[{a:1}],[{a:1},{a:1,b:2}]]
function getUnique(array){let obj = {}return array.filter((item, index) => {// 防止key重复let newItem = item + JSON.stringify(item)return obj.hasOwnProperty(newItem) ? false : obj[newItem] = true})
}
getUnique(arr)

hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是是否有指定的键),

所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

下面的例子检测了对象 o 是否含有自身属性 prop:

o = new Object();
o.prop = 'exists';function changeO() {o.newprop = o.prop;delete o.prop;
}o.hasOwnProperty('prop');   // 返回 true
changeO();
o.hasOwnProperty('prop');   // 返回 false

遍历一个对象的所有自身属性

下面的例子演示了如何在遍历一个对象的所有属性时忽略掉继承属性,注意这里 for...in  循环只会遍历可枚举属性,所以不应该基于这个循环中没有不可枚举的属性而得出 hasOwnProperty 是严格限制于可枚举项目的(如同 Object.getOwnPropertyNames())。

var buz = {fog: 'stack'
};for (var name in buz) {if (buz.hasOwnProperty(name)) {alert("this is fog (" + name + ") for sure. Value: " + buz[name]);}else {alert(name); // toString or something else}
}

js实现二维数组去重相关推荐

  1. wps js宏二维数组去重

    文章目录 前言 一.new Set()对一维数组去重 二.遍历二维数组元素去重 三.object对二维数组去重 前言 set是集合,set集合中的值具有唯一性,利用set可以快速去除一维数组中的重复值 ...

  2. python二维数组去重_np.unique()对一维和二维数组去重

    一维数组 对一维数组或列表,unique()函数去除其中重复元素,并按元素大小返回一个新的无重复元组或列表. import numpy as np A = [1, 2, 2, 5,3, 4, 3] a ...

  3. php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程

    本篇文章讲述了PHP实现一维数组与二维数组去重功能示例.希望对在php学习和开发的同学有所帮助! 数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: ? $a ...

  4. php 二维数组中去重,PHP实现二维数组去重功能示例

    PHP实现二维数组去重功能示例 发布于 2017-08-07 21:05:17 | 68 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Prep ...

  5. PHP二维数组去重(指定键名)

    本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐. 本文以二维数组去重为引,介绍array_column函数的三种用法 ...

  6. php 二维数组去重

    一维数组的重复项: 使用array_unique函数即可,使用实例如下:  代码如下 复制代码 <?php $aa = array("apple", "banana ...

  7. VB6 二维数组去重实现

    关于VB6的二维数组去重算法实现 当然,这里还是有局限性,当我们的数组被填满了各个不同的值时,例如下方 700*700 = 490000 就要While49万次,这谁受得了? 所以以下仅适合小规模使用 ...

  8. isset php 二维数组_php 数组去重,一维数组去重,二维数组去重

    php 数组去重 一维数组 方法1: array_unique($mobile_array); 方法2: $mobile_array = array_flip($mobile_array); $mob ...

  9. 二维数组去重,数组对象去重

    二维数组去重 使用对象的key不能重复原则,对数组进行去重 var arr = [[1, 1, 2], [1, 2, 1], [1, 1, 2], [1, 2, 3]] var obj = {} ar ...

最新文章

  1. 百度重磅发布云手机:低配置也可玩大型游戏 21
  2. BZOJ 4244 邮戳拉力赛 (DP)
  3. 银保监局招聘计算机岗位备考,2019年中国银保监会招聘计算机类如何备考?
  4. mysql set schema_Mysql数据库优化学习之一 Schema优化
  5. HDU - 5371 Hotaru's problem(马拉车+暴力)
  6. Spring框架相关问题
  7. android studio break,Android Studio IDE: Break on Exception
  8. 一文搞清楚 Spark RDD到底是什么?
  9. .NET Framework 4.8 的 Microsoft 更新目录更新
  10. 默认适应窗口_自适应网格分析带孔平板的应力集中问题
  11. 几个有趣的Javascript Hack
  12. Win32中文件的操作
  13. 跟随我在oracle学习php(27)
  14. 软件开发:到底谁还在传言软件巨头濒临死亡?
  15. springMVC+Mybatis实现查询分页
  16. Spring事务管理
  17. 计算机开机后屏幕和键盘不亮,电脑开机显示器不亮键盘也不亮怎么回事
  18. 什么是MEID号如何申请MEID,A0、A1、A2以及99开头的MEID号的区别?
  19. 湍流 Spectrum 与 Cascade 的理解
  20. JAVA计算机毕业设计政府采购线上招投标平台Mybatis+源码+数据库+lw文档+系统+调试部署

热门文章

  1. moment格式转换成年月日时分秒
  2. 小型企业的网络拓扑结构设计
  3. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(上)
  4. Ubuntu安装Samba 服务器
  5. JAVAMail 使用imap协议分析邮件
  6. 如何把JAR发布到maven中央仓库
  7. 以小麦胚芽之名,智膳堂创造膳食升级新图景
  8. 厄米多项式(Hermite Polynomials)
  9. 问题:启动tomcat报找不到JAVA_HOME或者JRE_HOME环境变量的问题
  10. python中出现IndentationError:unindent does not match any outer indentation level是什么问题?