JS中 reduce() 数组去重及求数组项最大值

一、语法

arr.reduce(function(prev,cur,index,arr){...}, init);

其中,

arr表示原数组;prev表示上一次调用回调时的返回值,或者初始值 init;cur表示当前正在处理的数组元素;index表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;init表示初始值。

1.求数组项最大值

  let arr = [1, 2, 3,3,2,4]
  let max = arr.reduce(function (prev, cur) { return Math.max(prev,cur); });
  console.log(max)//4

由于未传入初始值,所以开始时prev的值为数组第一项1,cur的值为数组第二项2,取两值最大值后继续进入下一轮回调。

2.数组去重

let arr = [1, 2, 3,3,2,4]
let  newArr = arr.reduce(function (prev, cur) { prev.indexOf(cur) === -1 && prev.push(cur); return prev; },[]);
  console.log(newArr)//[1, 2, 3, 4]

原文地址:https://www.cnblogs.com/lwming/p/12578492.html

时间: 2024-12-09 23:15:25

JS中 reduce() 数组去重及求数组项最大值的相关文章

浅谈JS中 reduce() 的用法

过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce() 的用法. 一.语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组: prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素: index 表示当前正在处理的数

js中的冒泡排序以及实现一个数组中得最到最大的数字小例

这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: 1.“编程复杂度”很低,很容易写出代码: 2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序.快速排序均不具有稳定性. 实现基本思路:冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数

关于js中的json对象,json串,数组之间相互转换

将json对象转换成string var loginUser = {username: username, password: password}//方式一 localStorage.setItem("loginUser", JSON.stringify(loginUser));//方式二 localStorage.setItem("loginUser",loginUser.toJSONString()); 将string转换成json对象 //方式一 var ob

js中常见的去重方式

/* * 几种常用的去重的方式 */ var arr = [2, 6, 1, 15, 11, 7, 12, 8, 5, 4, 3, 12, 10, 1, 7, 2, 4, 4, '4', 12, false, false, 3, '3']; // 去重方法1 : 先将数组排序,然后循环数组,判断当前元素与上一个是否相当,只针对number var unique1 = function(arr) { var removeArr = []; arr = arr.sort((function(a, b

递归求数组最小值; 递归求数组的平均值

飞艇公式规律[一对一教导扣1783478816][长久盈利轻松上岸]胜率95%,已助上千人成功翻盘,欢迎增加,沟通交流!如果你没过硬的基础,没有专业计划,没有实际规划,而是盲目**的话,注定你就在亏钱,但是如果是有计划有规律有规划的话就另当别论,可以说是投资,往往稳定心理的投资是有稳定的回报的.简单总结以下几点:1.资金投资要讲究,合理分配是可以得到回报的.2.玩法要专一,往往一在你换掉之前的玩法的时候就出了.3.心理要稳定,该出手就出手,别犹犹豫豫的,那样会把你给拖垮的.4. 别去依赖什么必胜

数组去重和两个数组求交集

引言 今天在项目中一个功能要用到两个数组求交集的算法. 大概是这样: 两个表格分别用easyui datagrid实现,要把A表格的一列数据和B表格的一列数据取出来,然后去重,去重后求交集. 那么在计算出的交集中分别根据求出的数据选中两个表格的对应行. 故用到js数组去重和求交集. 交集 Array.prototype.intersect = function(b) { var flip = {}; var res = []; for(var i=0; i< b.length; i++) fli

JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

壹 ? 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但我觉得大家至少应该掌握一种,这样在面试能解决大部分数组问题.在了解实现思路后,日常开发中结合实际场景优化实现,提升性能也是后期该考虑的. 本文主要围绕数组去重.数组排序.数组降维.数组合并.数组过滤.数组求差集,并集,交集,数组是否包含某项等知识点展开,附带部分知识拓展,在看实现代码前也建议大家先自

indexof实现数组去重的方法,有三个版本,一个Js版本,2个augular版本

先上Js的简化版本的数组去重,需要M层控制数据 大妈 1 var aa = [1,3,4,5,6,23,523,6,123,'1',12,'刘','刘','刘','翔',12,123,214,'1','3','刘翔','刘翔']; 2 3 function arr(arr){ 4 var result = []; 5 for (var i=0;i<arr.length;i++) { 6 if (result.indexOf(arr[i]) == -1) { 7 result.push(arr[i

js求数组的最大值--奇技淫巧和笨方法

写这篇文章的原因我目前做的项目很少用到算法,于是这方面的东西自然就有点儿生疏.最近的一次编码中遇到了从数组中获取最大值的需求,当时我不自觉的想到了js的sort()函数,现在想来真是有些“罪过”,当时自己内心还觉得有些得意:“嗯,我用js的内置方法解决了一个通常需要用排序算法才能解决的问题,代码简短,不用去写头疼的遍历和比较,可读性还好...”.内心戏很重,对吧.咳咳,哎,自己还是嫩而且还懒.js内生的sort函数也是用到了排序,详见segmentfault上的这个js内生sort()函数是如何