首页 > 其他分享 >数组处理 reduce() 数组的归并方法

数组处理 reduce() 数组的归并方法

时间:2022-12-28 10:44:33浏览次数:35  
标签:归并 const log reduce arr 数组 console name

1. 获取数组的最小元素

const getSmallest = (arr) =>
  arr.reduce((smallest, num) => Math.min(smallest, num));
const arr = [13, 7, 11, 3, 9, 15, 17];
console.log(getSmallest(arr)); // 3

2. 获取数组的最大元素

const getLargest = (arr) =>
  arr.reduce((largest, num) => Math.max(largest, num));
const arr = [13, 7, 11, 3, 9, 15, 17];
console.log(getLargest(arr)); // 17

3. 获取数组的平均值  reduce() 是数组的归并方法

const getAverage = (arr) => arr.reduce((sum, num) => sum + num, 0) / arr.length;
const arr = [5, 13, 9, 11, 10, 15, 7];
const average = getAverage(arr);
console.log(average); // 10

4. 从数组中删除重复项

const removeDuplicates = (arr) => [...new Set(arr)];
const arr = [1, 2, 3, 4, 5, 3, 1, 2, 5];
const distinct = removeDuplicates(arr);
console.log(distinct); // [1, 2, 3, 4, 5]

 

5. 打乱数组

const shuffleArray = (arr) => arr.sort(() => Math.random() - 0.5);
const arr = [1, 2, 3, 4, 5];
// [ 5, 2, 4, 1, 3 ] (varies)
console.log(shuffleArray(arr));

6. 按对象属性对数组进行分组

const groupBy = (arr, groupFn) =>
  arr.reduce(
    (grouped, obj) => ({
      ...grouped,
      [groupFn(obj)]: [...(grouped[groupFn(obj)] || []), obj],
    }),
    {}
  );
const people = [
  { name: 'Matt' },
  { name: 'Sam' },
  { name: 'John' },
  { name: 'Mac' },
];
const groupedByNameLength = groupBy(people, (person) => person.name.length);
/**
{
  '3': [ { name: 'Sam' }, { name: 'Mac' } ],
  '4': [ { name: 'Matt' }, { name: 'John' } ]
}
 */
console.log(groupedByNameLength);

7. 反转字符串

const reverseString = (str) => str.split('').reverse().join('');
const reverse = reverseString('javascript');
console.log(reverse); // tpircsavaj

8. 将蛇形字符串转换为驼峰大小写

const snakeToCamelCase = (s) =>
  s.toLowerCase().replace(/(_\w)/g, (w) => w.toUpperCase().substr(1));
const str1 = 'learn_javascript';
const str2 = 'coding_beauty';
console.log(snakeToCamelCase(str1)); // learnJavaScript
console.log(snakeToCamelCase(str2)); // codingBeauty

 

标签:归并,const,log,reduce,arr,数组,console,name
From: https://www.cnblogs.com/FACESCORE/p/17009597.html

相关文章

  • c:对指针数组、数组指针、char数组、char指针的探究
    c:对指针数组、数组指针、char数组、char指针的探究    一、指针数组  1、指针数组:指针的数组;指针数组是存储指针的数组。  2、指针数组的......
  • LeetCode 33:搜索旋转排序数组
    LeetCode33:搜索旋转排序数组题目整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使......
  • 子数组的最大异或和问题
    子数组的最大异或和问题作者:Grey原文地址:博客园:子数组的最大异或和问题CSDN:子数组的最大异或和问题题目描述数组中所有数都异或起来的结果,叫做异或和。给定一个数组......
  • js-将数组拆分为指定长度
    场景数组:[1,2,3,4,5,6,7,8,9,10]目标:[[1,2],[3,4],[5,6],[7,8],[9,10]]思路分析借助splice方法或者slice方法,一直对数组进行指定位数的删除,并将返回的数组push到一个......
  • C语言 -- 如何传递数组参数
    一、传递普通参数,直接传入即可voidarrprint(intarr){printf("%d\n",arr);}voidmain(){intarr=123;arrprint(arr);printf("aiyou");......
  • 【C++入门】(四)数组
    一. 一维数组1.1 数组的定义//数组的定义方式和变量类似。#include<iostream>#include<algorithm>usingnamespacestd;intmain(){inta[10],b[10];......
  • MapReduce实战之过滤日志及自定义日志输出路径案例(自定义OutputFormat)
    1)需求      过滤输入的log日志中是否包含atguigu      (1)包含atguigu的网站输出到e:/atguigu.log      (2)不包含atguigu的网站输出到e:/other.log2)输入......
  • C++强化 | 06 一篇文章带你掌握字符数组
    导读数组是信息学中非常重要的一块内容,可以说是必备的,也几乎是信息学竞赛中写代码必用的。前面的三节课,我们讲了一维数组,让大家对一维数组有了更加全面深刻的认知。本篇文章......
  • JavaScript学习--Item30 数组进阶全掌握
    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语......
  • 数组
    1、二分查找--704importjava.lang.annotation.Target;publicclass_704{publicstaticvoidmain(String[]args){_704test=new_704();......