js遍历数组重复值和数组中对象重复值

数组去除重复值:

arr.indexOf() 方法返回某个指定字符串值再字符中首次出现的位置,  如果数组中没有则返回-1
var arr=[2,8,5,0,5,2,6,7,2];
function unique1(arr){
  var result=[];
  for (var i = 0; i < arr.length; i++) {
     if(hash.indexOf(arr[i])==-1){
      resule.push(arr[i]);
     }
  }
  return result;
}

数组中对象去除的重复值得方法:var arr=[    {id:"45545",text:"管理"},
    {id:"4556545",text:"预览"},
    {id:"455455",text:"无权限"},
     {id:"45545",text:"管理"}
];//方法1var result=[];var obj={};for(i=0;i<arr.length;i++){   if(!obj[arr[i].id])    {       resule.push(arr[i]);       obj[arr(i).id]=true;    }}console.log(result)
   //  方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
       var obj = {};
       arr = arr.reduce(function(item, next) {
           obj[next.key] ? ‘‘ : obj[next.key] = true && item.push(next);
       return item;
    }, []);
     //另一种方式    arr = arr.reduce(function(item, next) {;               if(!obj[next.key])                    {                       item.push(next);                       obj[next.key]=true

}
       return item;
    }, []);


原文地址:https://www.cnblogs.com/lu2527/p/9418852.html

时间: 2024-10-11 06:38:49

js遍历数组重复值和数组中对象重复值的相关文章

复制对象属性:只复制需要的属性值,目标对象中原来的值不变(反射)

使用反射(性能很差,自测是cglib-beanmap性能的50分之1左右): /** * 复制对象属性:只复制需要的属性值,目标对象中原来的值不变 * 只适用于2个相同对象 * @param from 要复制的对象 * @param to 目标对象 * @throws Exception */ @SuppressWarnings("unchecked") public static void copyPropertiesExclude(Object from, Object to) t

笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.di

获取存储过程返回值及代码中获取返回值

获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@o_id bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerid )VALUES (@o_buyerid )SET @o_id = @@IDENTITYENDEND 存储过程中获得方法: D

[转] 小程序修改数组中对象的某个值或者修改对象值

小程序中获取当前data定义的值,用this.data.xxx setData的时候要修改的值是不需要加this.data.xxx的,直接xxx, 一般直接修改data的值直接修改,修改数组中对象的值或者对象的属性值都要先转为字符串再加中括号,如果有变量可以用ES6的模版字符串反单引号或者字符串拼接一下. Page({ data: { currentValue:"aa", todoLists:[ { detail:"", date:"", loc

【Java必修课】通过Value获取Map中的键值Key的四种方法

1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value值,求Key值. 本文将用实例介绍四种方法,通过传入Value值,获取得到Key值. 2 四种方法 2.1 循环法 循环法就是通过遍历Map里的Entry,一个个比较,把符合条件的找出来.会有三种情况: (1)找到一个值 (2)找到多个值 (3)找不到 具体代码如下: @Test public void lo

Java中真的只有值传递么?

Java中真的只有值传递么? (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型的包装类以及String是值传递,引用类型是引用传递.2.Java中只有值传递. 关于这个问题应该是存在争议的.根据测试出来的结果和我们自己的经验,以及口口相传或是上学时老师讲的,我们认为是第一种.但第二种说法的呼声也很高,渐渐地我们也认为第2中才是对的.那么下面我们就来分析一下这个问题. 在谈这个

JAVA随笔篇二(深入分析JAVA简单类型、String和对象的值传递和引用传递)

关于JAVA的值传递和引用传递,翻看了很多资料和博客,感觉大多数讲的很乱,都是自己明白了之后就不讲了的样子,终于算是比较理解这几个概念了,下面做一个总结. 1.简单类型的参数传递 Java方法的参数是简单类型的时候,是按值传递的 (pass by value).下面举一个经典的swap函数: 无法交换值的方法: package TestTransferPack; public class TestTransfer { public static void main(String[] args)

js去除数组中的重复值

hasOwnProperty(property) 方法 JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性. 使用方法: object.hasOwnProperty(proName) 其中参数object是必选项.一个对象的实例.proName是必选项.一个属性名称的字符串值. 如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true:反之则返回 false.此方法无法检查该对

js在数组中删除重复的元素自保留一个

js在数组中删除重复的元素自保留一个 第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 用到两个函数:for ...in 和 indexOf() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <script type="text/javascript"> var student = ['qiang','ming','tao','li','liang','you','qiang'