常用方法

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. Java代码编写规范(转载)

    编码规范 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程.系统继承的其它资源中的源程序也应按此规 ...

  2. 一张图理清 Python3 所有知识点

    如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...

  3. Vue 父子组件之间的互相调用方法

    第一种方法 直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <template> <div> <child></child& ...

  4. 读源码从简单的集合类之ArrayList源码分析。正确认识ArrayList

    一.查看源码的方法 1.看继承结构 看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解. 我是有idea查看的, eg:第一步: 第二步: 第三步:查看子类或者继承关系:F4 2.看构 ...

  5. 3、Template Method 模板方法 行为型设计模式

    1.了解模板方法 1.1 模式定义 定义一个操作算法中的框架,而将这些步骤延迟加载到子类中. 它的本质就是固定算法框架. 1.2 解决何种问题 让父类控制子类方法的调用顺序 模板方法模式使得子类可以不 ...

  6. java_String类、StringBuilder类、Arrays类、Math类的使用

    String类 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实例 构造方法 java.lang.String :此类不需 ...

  7. IndexFlatL2、IndexIVFFlat、IndexIVFPQ三种索引方式示例

    上文针对Faiss安装和一些原理做了简单说明,本文针对标题所列三种索引方式进行编码验证. 首先生成数据集,这里采用100万条数据,每条50维,生成数据做本地化保存,代码如下: import numpy ...

  8. 2020重新出发,JAVA学前了解,Windosws常用快捷键

    前言:windows 常用快捷键 标准计算机键盘共104键,除了26个字母键.符号键.数字键外,剩下的都是一些功能键: 键盘功能键 常用功能键:Esc.Tab.Caps Lock.Shift.Ctrl ...

  9. java方法与方法的重载

    一 方法 1.方法的概述 在java中,方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本, 控制输入或计算数值.我们可以 ...

  10. 使用Python语言通过PyQt5和socket实现UDP服务器

    前言 最近做了一个小软件,记录一下相关内容. 已有条件 现在已有一个硬件设备作为客户端(暂称其为"电路"). 基于SIM卡,电路可以通过UDP协议传输数据(程序已经内置在电路中), ...