reduce计算数组中每个元素出现的次数 数组去重的几种方式 将多维数组转化为一维
// js计算数组中每个元素出现的次数
// var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; // var countedNames = names.reduce(function (allNames, name) {
// if (name in allNames) {
// allNames[name]++;
// }
// else {
// allNames[name] = 1;
// }
// return allNames;
// }, {});
// console.log(countedNames) //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1} // 数组去重 Set 和 reduce 和 for循环
// let arr = [1,2,3,4,4,1]
// let newArr = arr.reduce((pre,cur)=>{
// if(!pre.includes(cur)){
// return pre.concat(cur)
// }else{
// return pre
// }
// },[])
// console.log(newArr);// [1, 2, 3, 4]
//将多维数组转化为一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]
// array.reduce(function (total, currentValue, currentIndex, arr), initialValue)
// 参数 描述
// total 必需。初始值, 或者计算结束后的返回值。
// currentValue 必需。当前元素被循环的元素
// currentIndex 可选。当前元素被循环的元素的索引
// arr 可选。当前元素所属的数组对象。
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
// 打印结果:
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4] 10
// 分析:第一次的prev 是初始值为1 ,以后的prev为返回值
// cur 当前元素被循环的元素,是下标为1的那个元素
// index当前元素被循环的元素的索引
reduce计算数组中每个元素出现的次数 数组去重的几种方式 将多维数组转化为一维的更多相关文章
- js计算数组中每个元素出现的次数
计算数组中每个元素出现的次数 var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; var countedNames = names.redu ...
- 统计数组中各个元素出现的次数,元素取值范围为:1到N
问题描述: * 给定一个整数数组a,长度为N,元素取值范围为[1,N]. * 统计各个元素出现的次数,要求时间复杂度为O(N),空间复杂度为O(1). * 可以改变原来数组结构. 思路: * 从第 ...
- 数组的三种方式总结 多维数组的遍历 Arrays类的常用方法总结
一.数组的三种声明方式总结 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] tes ...
- LeetCode - 统计数组中的元素
1. 统计数组中元素总结 1.1 统计元素出现的次数 为了统计元素出现的次数,我们肯定需要一个map来记录每个数组以及对应数字出现的频次.这里map的选择比较有讲究: 如果数据的范围有限制,如:只有小 ...
- js 删除 数组中某个元素(转载)
来源:https://www.jb51.net/article/134312.htm js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.ht ...
- Elasticsearch:foreach 摄入处理器介绍---处理未知长度数组中的元素
转载自:https://blog.csdn.net/UbuntuTouch/article/details/108621206 foreach processor 用于处理未知长度数组中的元素.这个有 ...
- Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数
Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 不再通过遍历,对数组中的元素进行运算,利用frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 ...
- 统计js数组中奇数元素的个数
如何统计一个JS数组中奇数元素的个数呢? 这是群友提出的一个问题,大部分群友给出的是遍历 然后对2取模,得到最终结果. 这样的写法是最容易想得到的,那么有没有其他思路呢? 这里我提供另外一种思路,我们 ...
- 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...
随机推荐
- ES3、ES5、ES6对象代理的写法差异
ES3的对象代理写法: console.log('定义私有变量ES3写法:') // ES3 var Person = function (){ var data = { name:'ES3', ag ...
- Windows10下Git环境变量配置
一.确定Git正确安装并能使用 右键项目目录,检查Git版本: 输入: git --version 二. 配置环境变量 右键我的电脑 --> 属性 点击高级系统设置 --> 环境变量 - ...
- Linux shell 判断字符串为空等常用命令
1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十二周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十二周学习总结 项 目 内 容 这个作业属于哪个课程 https://www.cnblogs.co ...
- angular 使用ng-zorro的from组件 运行报错
emplate parse errors: Can't bind to 'formGroup' since it isn't a known property of 'form'. 原因:没有导入表单 ...
- thinkphp的运行
打开cmd切换到www目录下运行think E:\wamp64\www>php think run ThinkPHP Development server is started On <h ...
- xLua 学习
xLua https://github.com/Tencent/xLua 文档 https://tencent.github.io/xLua/public/v1/guide/index.html FA ...
- js -- 数组的操作(自己的常用备查)
1.数组的定义 var arr = [],或者 var arr = [1,2,3,4,5] 2.数组的使用 >数组的合并 concat ,,]; ,]; a = a.concat(b); con ...
- 使用VisualVM 进行性能分析及调优
概述 开发大型 Java 应用程序的过程中难免遇到内存泄露.性能瓶颈等问题,比如文件.网络.数据库的连接未释放,未优化的算法等.随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系 ...
- JBoss4.2.2配置及优化
本文是在[url=http://solarisxb.cublog.cn]SOLARIS小兵[/url]的[url=http://blog.chinaunix.net/u/504/showart_114 ...