js数组操作-数组去重

第一个和第二个,都是对新数组或新json进行操作,而第三个是对原数组本身进行indexOf。
第一个是用新数组的indexOf来判断是否有重复元素,而第二个是通过nHash[item]来判断是否存在。

  var
array = [1, 2, 3, 2, 1]; Array.prototype.unique1 = function () { var nArray = []; // 新建一个数组 console.log(this, 'this的值'); for (var i = 0, len = this.length; i < len; i++) { //遍历当前数组 var item = this[i]; //如果当前数组的第i没有保存在临时数组中,那么将当前项push到临时数组里面 if ( nArray.indexOf(item) == -1 ) { // 数组通过通过indexOf()来判断这个item是否存在这个新数组中 nArray.push(item); }; }; return nArray; // 返回这个新数组 } console.log(array, array.unique1()); var array2 = [1, 2, 3, 2, 1]; Array.prototype.unique2 = function() { var nArray = [], nHash = {}; // n为hash表,r为临时数组 for (var i = 0, len = this.length; i < len; i++) { var item = this[i]; console.log(nHash[item]); // undefined 3, true 2 if (!nHash[item]) { // 如果hash表中没有当前项 对象通过nHash[item]即value为undefined || true来判断是否存在。 nHash[item] = true; // 存入hash表 nArray.push(item); //把当前数组的当前项push到临时数组里面 }; }; return nArray; }; console.log(array2.unique2()); var array3 = [1, 2, 3, 2, 1]; Array.prototype.unique3 = function() { var nArray = []; nArray.push(this[0]); for (var i = 1, len = this.length; i < len; i++) { // 从一开始减少一次循环,从第二项开始遍历 var item = this[i]; if (this.indexOf(item) == i) { // 对原数组自身进行操作 //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 nArray.push(item); }; }; return nArray; }; console.log(array3.unique3());

 

转载于:https://www.cnblogs.com/manchun/p/4567174.html

JavaScript数组及累加操作实战 htmltable {th, td {th {pre {简介:JavaScript中数组并累加是一项基础但要的操作,在数据处理中广泛应用。本文介绍了几种数组的方法,包括使用Set对象、indexOf与filter结合、reduce函数以及Map对象。随后,通过reduce函数实现后元素的累加。文章提供了一个可能包含具体代码实现的压缩包文件,其中main.js可能展示了累加的源码,而README.txt提供了代码使用指南或额外信息。 阅读详情

相关推荐

WPT无线电能传输公式推导、编程计算、仿真验证全过程

主要分为5大模块,分别为无补偿,SS,SP,PP,PS,每个模块对应有公式推导,matlab编程计算相关参数以及将计算参数和仿真验证观察是否对应。采用matlab编程计算参数以及simulink仿真验证

zzhao2580的博客 7688

js(Javascript)数组操作数组

js(Javascript)数组操作数组 一、数组操作 添加删除: (1)push(x) 将元素添加到数组最末尾 (2)unshift(x) 将元素添加到开头 (3)pop(x)删除最后一个元素 (4)shift(x)删除第一个元素 返回字符串:join() 二、数组操作 var arr = [1, 2, 2, 3, 4, 5, 5, 4, 8, 5, 1, 6, 1]; function singleArray(array) { var newArr = [];

weixin_58280614的博客 487

BitLocker磁盘锁定解决方法

摘要:本文介绍了BitLocker加密磁盘被锁的两种情况及解决方法。对于系统盘锁定,建议在微软账户中查找48位恢复密钥;数据盘锁定可尝试密码或恢复密钥解锁。若密钥丢失,可通过IT支持或数据恢复服务尝试解决。预防措施包括妥善备份密钥到微软账户和离线位置,避免随意更改系统硬件配置。BitLocker安全性高,恢复密钥是解锁关键,提醒用户务必做好备份以防数据丢失。(148字)

yueke06442300的专栏 2583

JavaScript数组操作 【排序、大小值、

一些基础的js数组用法; 一、数组元素随机排序: var arr2 = [1,2,3,4,5,6,7]; function Ran(a,b){ return Math.random() &gt;=0.5 ? 1 :-1 } arr2.sort(Ran); console.log(arr2); 二、求数组元素min和max值: var arr = [12,32,543,6456,86,3...

一尾流莺 半世情缘 446

JavaScript Set集合相关操作、Set转数组数组

JavaScript Set集合相关操作、Set转数组数组Set创建Set对象Set加入(add方法)或删除(delete方法)key操作Set转数组数组 Set Set是一种类似于Map的数据结构,也是一组key的集合,但不存储value。由于key不能复,所以,在Set中,没有复的key,这种特性就起到数据的效果,复的数据不会被写入到Set中。 创建Set对象 //创建一个空的SET let sets = new Set(); //可以传入数组-数组转set let sets1 =

u012211003的博客 2970

JavaScript--数组操作--js

我们在某些数据处理时会遇见数据复的情况,这要怎么将数组中的数据除呢? 首先最简单的方法就是保留首先出现的除后续出现相同的数据 【温馨提示】所有的详细解析均存在于代码中,还有疑问的小伙伴欢迎留言哦 function w(){ document.write("前:") var Num=[1,3,5,1,3,7,2,5,3,4] for(var i=0;i<Num.length;i++){ document.write(Num[i]+" ")

m0_54202580的博客 490

JS数组数组对象操作

数组

老古懂的博客 350

JS数组操作(添加,删除,排序,

数组的添加 arr.push()-----添加到结尾 arr.unshift()-----添加到头部 数组的删除 delete arr[0] ----删除第一个 arr.pop() -----删除最后一个 arr.splice(i,1) ---- 删除下标为i的一项 数组的排序 sort() 对数组中的对象排序 export function sortUnitType(prop) { r......

flhhly的博客 853

js数组操作总结

思路1.遍历数组,用indexOf() 该方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。 整体思路:新建一个数组result,遍历原数组,当arr[i]不存在于新数组中就将其push进新数组,得到的新数组就是后的数组。 var arr=[1,3,1,1,2,4,4,8]; function unique(){ for(i=0;i<arr.length;i++){ ...

weixin_44164982的博客 266

JS操作数组神器——reduce(求和、出现次数、、分类)

reduce() 对数组每个元素执行一次由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。循环遍历能做的,reduce都可以做。比如数组根据元素某个属性求和、数组元素出现次数、数组数组根据某个元素属性分类等等。...

每天一个前端小知识~ 2万+

js数组操作常用的方法,删除指定元素、除空值、是否包含另一个数组

1、从数组中删除某一个指定的元素 Array.prototype.remove = function(val) { let index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; 2、数组中的空值 function bouncer(arr) { /...

withwz的博客 1191

js数组(使用操作原型对象的方法给数组添加方法)

Object.defineProperty(Array.prototype, 'handData', { value: function () { return Array.from(new Set(this)) } }) let arr = [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN] console.log(arr.handData()) 解释一下上面代码的含义 Object.d

LIUAWEIO的博客 957

JS【详解】数组数组的本质、创建数组、常用数组操作API汇总对比和实战范例、数组的遍历、复制、、降维等)

数组本质上是以数字为键(从0开始,依次递增),并外加一个会自动增长的 length 属性的对象。

朝阳39的博客 1150

js 操作数组、对象排序、、合并

数组 arr.includes(指定元素(必填),指定索引值(可选,默认值为0) ),有值返回true,没有则返回false var arr = [-1,0,8,-3,-1,5,5,7] function unique (arr) { let arr1 = [] for (var i = 0; i < arr.length; i++) { if (!arr1.includes(arr[i])) { arr1.push(a

前端的路上 448

java数组分离奇偶并_js数组操作方法总结(必看篇)

判断数值数组中各个数字出现的奇偶次数数组操作var arr=[3,1,2,2,1,3,1];var sum=[];var res=[];var count=0;var temp;for(var i=0;iif(res.indexOf(arr[i])==-1){res.push(arr[i]);}}for(var i=0;ifor(var j=0;jif(arr[j]==res[i]){count+...

weixin_39932611的博客 269

php json数组,JS操作JSON数组

这次给大家带来JS操作JSON数组,的注意事项有哪些,下面就是实战案例,一起来看一下。需求描述:JSON数组中paymode字段相同的项,并将paymoney累加。paylist:[{paymode:'1',payname:"现金",paymoney:"20"},{paymode:'2',payname:"支付宝",paymoney:"50"},{paymode:'1',payname:"...

weixin_42512159的博客 348

js 对一个字段_js数组操作数组对象,合并数组

1数组对象 var arr = [{ key: "01", value: "乐乐" }, { key: "02", value: "博博" }, { key: "01", value: "乐乐" } ]; // 用访问对象属性的方法...

weixin_35480412的博客 321

js二维数组的初始化,增删改查,遍历操作数组头加入数据,数组尾加数据;js任意键值查询,遍历,操作

// js二维数组的增删改查,遍历操作 // 情况一,一般二维数组,一维二维键值均为数字 edit(); function edit(){ var data = [ ["30", 1, "联系组一", "1", true], ["31", 1, "联系组二", "1", true], ["180", 1,"局机关第一党支部", "1", ...

kloumb的博客 5902

JS代码——实现数组操作

/ 设置一个新的数据用来接收数据,利用indexOf 来判断数据是否存在于新数组中,// 方案5.定义一个新数组,将 arr 的第一个值添加到新数组中作为比较对象,// 遍历从数组的第二个值开始逐一比较 push 后的新数组中每个元素比较,// 用splice的特性,比较两个数是否相同,获得相同元素的下标,// 看是否有相同的,不同就添加,获得不复新数组。// 删除相同元素,改变原数组,获得后的数组。// 不存在,则添加进,获得后的新数组。// 循环结束,返回新数组

weixin_56286359的博客 954

for根据ID_js数组操作数组对象,合并数组

1数组对象var 2 改变数组对象的键名 键值不变var 3 js数组对象, 取对象键名和键值为新数组数组格式4 将两个数组对象合并成一个数组var 5 简单数组合并方法// 单个数组合并方法concat 的方法 此方法不改变原数组 循环遍历法var Array...

weixin_39538687的博客 176

js数组,合集等操作

<script type="text/javascript"> var a=['a','b','c']; var b=['a','b','d','f']; var arr1 = intersection(a,b); alert("a,b的合集-复:"+arr1); var arr2 = chaji(a,b); alert("a与b不复的部分:"

超越的博客 489
上一篇: 数组方法:排序和清空
下一篇: css-div下内容垂直居中
allan20042
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值