js实现数组去重、判断数组以及对象中的内容是否相同

yizhihongxing

数组去重的实现:

可以使用 Set 数据结构进行数组去重,因为 Set 对象只存储唯一的值。

let arr = [1, 1, 2, 2, 3, 3]; // 需要去重的数组

let arrUnique = [...new Set(arr)]; // 使用 Set 数据结构进行去重

console.log(arrUnique); // 输出 [1, 2, 3]

判断数组中的内容是否相同:

可以使用 JSON.stringify() 方法将数组转换为字符串,比较两个字符串是否相等。

let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3];
let arr3 = [2, 3, 4];

let str1 = JSON.stringify(arr1);
let str2 = JSON.stringify(arr2);
let str3 = JSON.stringify(arr3);

console.log(str1 === str2); // 输出 true,说明 arr1 和 arr2 的内容相同
console.log(str1 === str3); // 输出 false,说明 arr1 和 arr3 的内容不同

判断对象中的内容是否相同:

可以使用递归的方式,分别比较两个对象的每个属性是否相等。

function isEqual(obj1, obj2) {
  if (obj1 === obj2) {
    return true;
  }
  if (Object.keys(obj1).length !== Object.keys(obj2).length) {
    return false;
  }
  for (let key in obj1) {
    if (obj1.hasOwnProperty(key) && obj2.hasOwnProperty(key)) {
      if (isObject(obj1[key]) && isObject(obj2[key])) {
        if (!isEqual(obj1[key], obj2[key])) {
          return false;
        }
      } else if (obj1[key] !== obj2[key]) {
        return false;
      }
    } else {
      return false;
    }
  }
  return true;
}

function isObject(object) {
  return object != null && typeof object === 'object';
}

let obj1 = {a: 1, b: {c: 2}};
let obj2 = {a: 1, b: {c: 2}};
let obj3 = {a: 1, b: {c: 3}};

console.log(isEqual(obj1, obj2)); // 输出 true,说明 obj1 和 obj2 的内容相同
console.log(isEqual(obj1, obj3)); // 输出 false,说明 obj1 和 obj3 的内容不同

以上就是实现数组去重、判断数组以及对象中的内容是否相同的完整攻略,希望能够帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现数组去重、判断数组以及对象中的内容是否相同 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码

    下面我来详细讲解JavaScript字符串数字左补位、右补位、取固定长度、截位扩展函数的完整攻略。 JavaScript字符串数字左补位 左补位的需求在某些场景下非常常见,比如对日期格式化时,需要将月份和日期左补位补成两位数,例如1月份,格式化后应该是”01″。下面是一个左补位的示例代码: function leftPad(val, width, ch) {…

    JavaScript 2023年5月28日
    00
  • ASP.NET笔记之 ListView 与 DropDownList的使用

    ASP.NET笔记之 ListView 与 DropDownList的使用 介绍 在ASP.NET中,ListView和DropDownList都是常用的控件之一,ListView可以显示多行数据并提供样式控制,DropDownList则是提供了下拉列表的选择功能。本文将详细讲解ListView和DropDownList的使用,包括基本概念、属性设置和样式控…

    JavaScript 2023年6月10日
    00
  • js函数中onmousedown和onclick的区别和联系探讨

    我们就按照以下步骤来讲解 js 函数中 onmousedown 和 onclick 的区别和联系。 1. onmousedown 和 onclick 的作用 在开始讲解 onmousedown 和 onclick 的区别之前,我们先来了解一下它们的作用。 onmousedown:当鼠标按下某个元素时触发。 onclick:当鼠标点击某个元素时触发。 这两个事…

    JavaScript 2023年5月28日
    00
  • 常用原生js自定义函数总结

    常用原生JS自定义函数总结 这篇攻略将会介绍一些常用的原生JS自定义函数,包括数组、字符串、日期、对象等方面,让您更加深入地了解JS的各个方面。 数组 数组去重函数 function uniqueArr(arr) { return Array.from(new Set(arr)); } // 示例 const arr1 = [1, 2, 3, 2, 1]; …

    JavaScript 2023年5月27日
    00
  • js跨域调用WebService的简单实例

    下面是详细讲解“js跨域调用WebService的简单实例”的完整攻略,包含了两条示例说明。 什么是跨域调用? 在同源策略下,Web页面只能调用同一域名下的Web服务,无法调用外部的Web服务。这是因为出于安全考虑,为防止页面通过Javascript获取到外部服务的数据后,将数据篡改或者传输给恶意的第三方站点。 但是有时候,我们确实需要通过Javascrip…

    JavaScript 2023年6月11日
    00
  • 从JavaScript纯函数解析最深刻的函子 Monad实例

    让我给你讲解一下“从JavaScript纯函数解析最深刻的函子Monad实例”的完整攻略。 1. 函数式编程简介 在开始解析函子Monad之前,我们需要先了解一些函数式编程的基础概念。函数式编程是一种编程风格,其核心思想是将计算过程尽可能的使用函数来描述和实现。在函数式编程中,函数是一等公民,也就是说函数可以像其他数据类型一样被传递、赋值、作为参数或返回值等…

    JavaScript 2023年5月28日
    00
  • JavaScript函数模式详解

    JavaScript函数模式详解 JavaScript函数模式是JavaScript语言中最常用的设计模式之一,在前端工程开发中具有很高的实用价值。本文将详细介绍JavaScript函数模式的各种形式以及使用场景。 普通函数 JavaScript中最基本的函数形式是普通函数,使用function关键字定义。普通函数可以通过函数名调用,也可以作为参数传递给其他…

    JavaScript 2023年5月18日
    00
  • JS数组进阶示例【数组的几种函数用法】

    JS数组进阶示例【数组的几种函数用法】是一个关于JavaScript数组的进阶教程。本教程主要介绍了数组的一些常用函数用法,可以帮助读者更好地理解和运用JavaScript数组。 目录 map()函数 reduce()函数 filter()函数 示例教程1:统计颜色 示例教程2:计算平均分 map()函数 map()函数是一种用于处理数组元素的函数,它会将数…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部