常用方法

1.forEach()

var data = [1,2,3,4,5];
var sum = 0;
//求和
data.forEach((item)=>{sum+=item})
//给原数组的每个值加1
data.forEach((value,index,data)=>{data[index] = value + 1})

2.concat()  //合并多个数组,返回合并后的新数组,原数组没有变化。

const array = [1,2].concat(['a', 'b'], ['name']);
// [1, 2, "a", "b", "name"]

3.filter()  //返回一个新数组,包含通过callback函数测试的所有元素。

var fil = [5,4,3,2,1];
smallvalues = fil.filter((x)=>{return x < 3});
console.log(smallvalues)//小于3
oddNumber = fil.filter((x,i) => x % 2 === 0);//偶数

4.map()  //返回新数组

var a = [1,2,3], b;
b = a.map((x)=>{return x*3});
console.log(a,b)

5.every()和some()  //every()和some()方法是数组的逻辑判定

var ever = [1,2,3,4,5];
var xiaoyushi = ever.every((x)=>{return x < 10})//返回true,所有的值都小于10
var evenNumber = ever.every((x)=> x % 2 === 0)//返回false,不是所有的值都是偶数
var shifouyousi = ever.some((x)=> x==4)//数组里面有一个值等于4则返回true

6.reduce()和reduceRight

//reduce为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值)
var arr = [1,2,3,4];
var qiuhe = arr.reduce((prev, cur, index, arr)=>{
//prev:上一次调用回调返回的值,或者是提供的初始值(initialValue); cur:数组中当前被处理的元素
console.log(prev, cur, index);
return prev + cur;
})
//实例解析initialValue参数
var arr1 = [1,2,3,4];
var qiuhe2 = arr1.reduce((prev,cur,index,arr)=>{
console.log(prev,cur,index);
return prev + cur;
},0)//这里设置了初始值
console.log(arr1, qiuhe2);
//结论: 如果没有initialValue,reduce会从索引1的地方开始执行callback方法,跳过第一个索引。如果提供initialValue,从索引0开始。 /var arr2 = [];

var qiuhe3 = arr2.reduce((prev, cur, index, arr)=>{//报错,不能处理空数组

console.log(prev, cur, index);

return prev + cur;

})
/ var arr3 = [];

var qiuhe4 = arr3.reduce((prev, cur, index, arr)=>{//不会报错,因为设置了初始值

console.log(prev, cur, index);

return prev + cur;

},0)

console.log(arr3,qiuhe4) //reduce的简单用法(求和,求乘积)

var arr4 = [1,2,3,4,5,6,7,8,9,10];

var qiuhe5 = arr4.reduce((x,y)=>{return x + y})

var mul = arr4.reduce((x,y)=>{return x * y})

var max = arr4.reduce((x,y)=>{return (x>y)?x:y})//求最大值 //reduce的高级用法

//1.计算数组中每个元素出现的次数

let names = ['alice','bob','tiff','bruce','alice'];

let nameNum = names.reduce((pre, cur)=>{

if(cur in pre){

pre[cur]++

}else{

pre[cur] = 1

}

return pre

},{})

console.log(nameNum) //2.数组去重

let arr5 = [1,2,3,4,4,3,5];

let newArr = arr5.reduce((pre, cur)=>{

if(!pre.includes(cur)){

return pre.concat(cur)

}else{

return pre

}

},[])

console.log(newArr) //3.将二维数组转化为一维数组

let arr6 = [[0,1],[2,3],[4,5]];

let newArr2 = arr6.reduce((pre,cur)=>{

return pre.concat(cur)

},[])

console.log(newArr2); //4.将多维数组转化为一维数组

let arr7 = [[0,1],[2,3],[4,[5,6,7]]]

const newArr3 = function(arr){

return arr.reduce((pre,cur)=>{

return pre.concat(Array.isArray(cur)? newArr3(cur): cur)

},[])

}

console.log(newArr3(arr7)); //5.对象里的属性求和

var result = [

{

subject: 'math',

score: 10

},

{

subject: 'chinese',

score: 20

},

{

subject: 'english',

score: 30

}

]; var qiuhe6 = result.reduce((prev,cur)=>{

return cur.score + prev

},0)

console.log(qiuhe6)

JavaScript(es6)数组常用的方法的更多相关文章

  1. javascript中数组常用的方法

    在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...

  2. javascript中数组常用的方法和属性

    前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...

  3. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  4. JS 数组常用的方法

    数组常用的方法: x.toString()方法:任何对象都有toString方法.        将任何对象转为字符串. 一般不主动调用,系统在需要时自动调用 x.valueOf()方法:同toStr ...

  5. JavaScript学习总结之数组常用的方法和属性

    先点赞后关注,防止会迷路寄语:没有一个冬天不会过去,没有一个春天不会到来. 前言数组常用的属性和方法常用属性返回数组的大小常用方法栈方法队列方法重排序方法操作方法转换方法迭代方法归并方法总结结尾 前言 ...

  6. ES6数组对象新增方法

    1. Array.from() Array.from方法用于将两类对象转为真正的数组:类数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的 ...

  7. JS 开发中数组常用的方法

    大家有没有想过,js数组为什么会有这么多的方法,没错,就是为了不同场景下处理数据的需要,就像设计模式一样,都是为了能更好的处理当前场景的需要. 首先怎么创建一个数组呢, // 两种方式 // 1,构造 ...

  8. Javascript中数组的判断方法

    摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.i ...

  9. javascript中数组Array的方法

    一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...

  10. JavaScript中数组中的方法:push()、pop()、shift()、unshift()、slice()、splice()、reverse()、join()、split()、concat()、indexOf()、forEach()、map()、

      1.创建数组的几种方法 //a).通过new来创建数组,new可以省略 var arr=new Array(); var arr=Array(); //b). .通过new来创建数组,并且赋值 v ...

随机推荐

  1. LinuX操作系统基础------>了解文件结构和相关的文件操作

    了解LinuX文件系统 熟悉LinuX的文件结构 熟悉LinuX的基本操作指令 利用所学指令进行指令组合操作 什么是文件?什么是目录? 文件:一般是一个独立的东西,可以通过某些工具将其打开 目录:可以 ...

  2. Linux学习笔记之linux的文件目录结构

    Linux环境下,一切皆文件! linux和windows系统有区别, windows是在各个硬盘上进行分区,分区里面又有好多文件, 而linux是采用树状的目录结构,所有都在根目录  /  下,所有 ...

  3. CSS高级特效(上)

    1.CSS Shapes CSS Shapes是一个新标准,旨在让Web设计者能使用各种形状. CSS Shapes包含两组新属性,一组用于设置影响盒子中内容的形状,另一组用于设置影响形状元素周边内容 ...

  4. SSH config语法关键字

    1.SSH config 语法关键字 host 别名 HostName 主机名(ip) User    用户(root就是一个用户) Port 端口(默认22) IdentityFile 密钥文件的路 ...

  5. 2020-06-07:mysql中varchar类型的id,where id=1,会用到索引吗?int 类型的id,where id="1",会用到索引吗?为什么?

    福哥答案2020-06-07: 答案来自群员:对于int类型id,查询的varchar 类型 ‘1’会隐式转换成 1,‘1’和 1都能正常走索引:对于varchar类型id,查询的int 类型 1不会 ...

  6. Vue Element-UI 中列表单选的实现

    el-table中单选的实现 引用场景: 选择单条数据进行业务操作 实现方式: 给el-table-column设置el-radio Template 代码 <div class="r ...

  7. JavaScript 防抖(debounce)和节流(throttle)

    防抖函数 触发高频事件后,n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间 /** * * @param {*} fn :callback function * @param {* ...

  8. DES算法的python3实现

    DES原理 DES原理 这里不予以复述, 有很多优秀的博客 原理可以参考这篇博客 https://www.cnblogs.com/songwenlong/p/5944139.html DES实现 1. ...

  9. 《Windows程序设计(第5版 珍藏版)》配书光盘

    https://pan.baidu.com/s/1ro72qQja_xTbf-Ik8b06Ng

  10. G4560 HD610安装黑苹果Hakintosh

    这一篇主要是写给使用G4560笔记本折腾黑苹果的朋友. 我折腾了几天黑苹果,发现怎么也无法成功,最后我才知道HD610现在还不支持黑苹果. 由于大多数笔记本不支持屏蔽核显,这意味着要想使用黑苹果必须要 ...