js实用篇-去除数组或者对象里重复选项

这篇具有很好参考价值的文章主要介绍了js实用篇-去除数组或者对象里重复选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


在 JavaScript 中,数组去重,对象去重,可以使用多种方法来去除数组或对象中的重复项。以下是其中的一些方法:

去除数组中的重复项

方法一:使用 Set

使用 Set 是去除数组中重复项的最简单和最快的方法。Set 对象是一组不重复的值的集合,可以接受一个数组(或者具有可迭代属性的其他对象)作为参数,并返回一个包含不重复元素的新数组。例如:

javascriptCopy code
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]

方法二:使用 filter 和 indexOf

使用 filter 和 indexOf 方法可以从数组中删除重复项。例如:

javascriptCopy code
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.filter((item, index) => {
  return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]

方法三:使用 reduce 和 includes

使用 reduce 和 includes 方法可以从数组中删除重复项。例如:

javascriptCopy code
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((prev, cur) => {
  if (!prev.includes(cur)) {
    prev.push(cur);
  }
  return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

去除对象中的重复项

方法一:使用 for…in 和 hasOwnProperty

使用 for…in 循环遍历对象的属性,并使用 hasOwnProperty 方法检查属性是否是对象自身的属性。例如:

javascriptCopy code
const obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 3,
  e: 4,
  f: 4
};
const uniqueObj = {};
for (const key in obj) {
  if (obj.hasOwnProperty(key)) {
    uniqueObj[obj[key]] = key;
  }
}
console.log(uniqueObj); // { '1': 'a', '2': 'b', '3': 'c', '4': 'e' }

方法二:使用 Object.keys 和 reduce

使用 Object.keys 方法获取对象的所有属性,然后使用 reduce 方法来去除重复项。例如:

javascriptCopy code
const obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 3,
  e: 4,
  f: 4
};
const uniqueObj = Object.keys(obj).reduce((prev, key) => {
  const value = obj[key];
  if (!prev.hasOwnProperty(value)) {
    prev[value] = key;
  }
  return prev;
}, {});
console.log(uniqueObj); // { '1': 'a', '2': 'b', '3': 'c', '4': 'e' }

以上是去除数组或对象中的重复项的几种方法。选择哪种方法取决于个人喜好和具体情况。文章来源地址https://www.toymoban.com/news/detail-596600.html

到了这里,关于js实用篇-去除数组或者对象里重复选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数组(九)-- LC[316]&[321]&[402] 去除重复字母

    1.1 题目描述         题目链接:https://leetcode.cn/problems/remove-k-digits/ 1.2 思路分析         这道题让我们从一个字符串数字中删除 k 个数字,使得剩下的数最小。也就说,我们要保持原来的数字的相对位置不变。         以题目中的 n u m = 1432219 , k = 3 num = 1432219,

    2023年04月12日
    浏览(43)
  • Matlab | 去除数组或矩阵中的重复元素

    感谢@向着阳光生长的男孩的指正!有更好的方法,只要一句代码就搞定了。把三种方法整理了,一并放在下面了。 运行结果 ———————————————————————————————————————————————————————————

    2024年02月11日
    浏览(44)
  • 快速去重:使用Java根据对象某一属性去除重复对象的实现指南

    🧐📚 Java中的对象去重操作?跟着小编一起学习吧!👇 在处理对象集合时,有时候我们需要根据对象的某个属性进行去重操作。Java给我们提供了多种方法来实现这个功能。今天,小编就来给大家介绍一下如何使用Java根据对象的某个属性进行去重操作。💫 提供一个自定义的

    2024年02月04日
    浏览(60)
  • WIN11家庭版由于失败的登录次数过多或重复关机,此登录选项已被禁用。请使用其他登录选项,或者保持设备开机至少2小时,然后重试解决方法

    如果在Windows 11中输入gpedit.msc后提示找不到文件,可能是因为您使用的Windows版本是Home版,该版本没有包含组策略编辑器(gpedit.msc)功能。此时您需要升级到专业版、教育版或企业版才能使用组策略编辑器。 如果您无法升级到适合的Windows版本,可以尝试其他方法来禁用账户锁

    2024年02月11日
    浏览(742)
  • React突变状态,更新数据(对象或者数组),页面数据不刷新的问题

    ​ 刚开始开发时,我们可能会遇到这样的问题,使用useState创建对象或者数组时,setState时,页面未进行更新。这里其实是一个突变状态的问题 什么是突变状态? ​ 当我们给 setState 一个基本数据类型时, state 值将会是 一个不可变的值 ​ 更新时, state 的 原始值也不会被更

    2024年02月11日
    浏览(50)
  • js实现push重复的数组拿到最新的数据

    2023.8.1今天我学习了如何使用js把重复push的数组只取最新的。 如:当我们使用@input方法需要对数据进行叠加的时候可能会对同一条数据进行多次操作。 如: data:[ {id:1,name:\\\'张三\\\'},{id:2,name:\\\'李四\\\'},{id:1,name:\\\'张三三\\\'} ] 通过这个数组我们会发现id为1的这个数据会添加了两次,但是

    2024年02月14日
    浏览(35)
  • 使用Stream流筛选出List集合中符合条件的实体对象

    使用stream流筛选出List集合中符合条件的实体对象 注意:使用findFirst()方法返回的是符合条件的第一个元素,使用findAny()方法在多线程并发访问下是符合条件的任意元素 示例: 结果:

    2024年02月16日
    浏览(52)
  • js两个数组对象去重,删除两个数组中相同的对象、删除数组对象中某个对象

    模拟一些数据: 方式一:两个数组通过arr1的id和arr2的id比较,返回去重后的arr1  写法二 打印的结果:console.log(newArr); 方式二:删除两个数组对象中相同的对象 方式三:es6 去掉两个数组中相同值的对象 删除数组中某一个对象、指定的对象 数组删除其中的对象或元素,在前端

    2023年04月09日
    浏览(43)
  • JS对象转数组

    一、JS对象转数组方法如下(不考虑for相关遍历):         1.[...res]         2.Array.from(res)         3.Object.values(res)         4. Array.prototype.slice.call(res) 二、具体使用         1.[...res]           2. Array.from(res)         3. Object.values(res) 4. Array.prototype.slice.call(res)    

    2024年02月11日
    浏览(31)
  • JS对象-数组(Array)

    1.        arr1.concat(arr2,arr3..) 合并数组 2.        arr1.join(\\\"指定字符串\\\"); 将数组按指定字符串拼接成一个新的字符串             arr1.toString() 转字符串,默认,分割 无法指定 3.    arr1.pop() 删除最后一个元素         arr1.push(\\\"元素\\\") 在结尾添加元素(可多个) 4.       

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包