数组的方法
arr.includes()
arr.every(fn(val,i))
arr.some(fn(val,i))
arr.filter(fn(val,i))
arr.map(fn(val,i))
ar.reduce(fn(prev,current),initValue)
arr.sort()或arr.sort(fn(a,b))

arr.forEach(fn(val,i))

arr.copyWithin(target,start,end)

arr.fill(target,start,end)

1.arr.includes()

理解:判断是否包含某个元素
使用:arr.includes()
参数:
返回值:返回值是布尔值。true,false
原数组:不改变

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.includes(5);
  4. let res2 = arr1.includes(6);
  5.  
  6. console.log('原数组',arr1); // [0,1,2,3,4,5]
  7. console.log('返回值',res1); // true
  8. console.log('返回值',res2); // false

2.arr.forEach(function(val,i){})判断所有

理解:循环数组
使用:arr.forEach()
参数:
返回值:没有返回值
原数组:不改变

  1. let arr1 = ["a","b","c","d"];
  2.  
  3. arr1.forEach((item,i,arr)=>{
  4. console.log(item,i,arr); //a 0 (4) ["a", "b", "c", "d"]
  5. })

2.arr.every(function(val,i){})判断所有

理解:判断所有
使用:arr.every()
参数:
返回值:返回值是布尔值。true,false
原数组:不改变

返回值是布尔值。循环数组,每循环一次,执行一次回调函数,只要有一个元素的回调函数的返回值是false,就结束循环,结果就是false;只有所有元素符合回调函数的条件,结果就是true。

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.every((item,i,arr)=>{
  4. console.log(item,i,arr); //a 0 (4) ["a", "b", "c", "d"]
  5. return item > 2
  6. })
  7.  
  8. let res2 = arr1.every((item,i,arr)=>{
  9. console.log(item,i,arr); //a 0 (4) ["a", "b", "c", "d"]
  10. return item < 6
  11. })
  12.  
  13. console.log('原数组',arr1); //["a", "b", "c", "d"]
  14. console.log('返回值',res1); //false
  15. console.log('返回值',res2); //true

3.arr.some(function(val,i){})判断是否含有

理解:判断是否含有。
使用:arr.some()
参数:
返回值:返回值是布尔值。true,false
原数组:不改变

返回值是布尔值。循环数组,每循环一次,执行一次回调函数,只要有一个元素的回调函数的返回值是true,就结束循环,结果就是true;只有所有元素不符合回调函数的条件,结果就是false。

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.some((item,i,arr)=>{
  4. console.log(item,i,arr); //a 0 (4) ["a", "b", "c", "d"]
  5. return item > 2
  6. })
  7.  
  8. let res2 = arr1.some((item,i,arr)=>{
  9. console.log(item,i,arr); //a 0 (4) ["a", "b", "c", "d"]
  10. return item > 6
  11. })
  12.  
  13. console.log('原数组',arr1); //["a", "b", "c", "d"]
  14. console.log('返回值',res1); //true
  15. console.log('返回值',res2); //false

4.arr.filter(function(val,i){})

理解:过滤符合条件的元素,集合成数组
使用:arr.filter()
参数:
返回值:返回符合条件的元素组成的新数组
原数组:不改变

返回值是数组。循环数组,每循环一次,执行一次回调函数,只要元素满足回调函数的条件,就将元素添加到新数组,循环结束后,返回新数组。

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.filter((item,i,arr)=>{
  4. console.log(item,i,arr); //a 0 (4)  [0,1,2,3,4,5]
  5. return item >2
  6. })
  7.  
  8. console.log('原数组',arr1); // [0,1,2,3,4,5]
  9. console.log('返回值',res1); // [3, 4, 5]

5.arr.map(function(val,i){})按条件映射出新的元素,集合成数组

理解:按条件映射出新的元素,集合成数组
使用:arr.map()
参数:
返回值:于原数组长度相等的新数组
原数组:不改变

返回值是数组。循环数组,每循环一次,执行一次回调函数,按照条件映射出新的元素,集合成新的数组,并返回数组。
技巧:拼接ul中li时,可以datas.map(function(){return '<li><li>'}).join('')

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.map((item,i,arr)=>{
  4. console.log(item,i,arr); //a 0 (4)  [0,1,2,3,4,5]
  5. return item + 'a'
  6. })
  7.  
  8. console.log('原数组',arr1); // [0,1,2,3,4,5]
  9. console.log('返回值',res1); // ["0a", "1a", "2a", "3a", "4a", "5a"]

6.arr.reduce(callback,initValue)

理解:
使用:arr.reduce()
参数:
返回值:返回回调函数的计算之后的值。
原数组:不改变

callback(prevValue, currentValue)
prevValue: 上一次的值;
currentValue: 当前的值。 initValue会赋值给prevValue作为初始值,如果没有传入,那么prevValue的值为数组的第0个;callback每次返回的值将作为callback下一次执行的prevValue;循环完成以后最后一次callback返回的值将作为该reduce函数的结果。

arr.reduce()也可以完成arr.map()映射的任务。

  1. let arr1 = [0,1,2,3,4,5];
  2.  
  3. let res1 = arr1.reduce(function(prev,current,i,ar){
  4. // console.log(prev,current,i,ar)
  5. return prev + current;
  6. },0)
  7.  
  8. console.log('原数组',arr1); // [0,1,2,3,4,5]
  9. console.log('返回值',res1); //
  1. //reduce--商品计价
  2. let goods = [
  3. {num : 3, price : 10},
  4. {num : 1, price : 1},
  5. {num : 2, price : 2},
  6. {num : 3, price : 3},
  7. ];
  8.  
  9. let resGoods = goods.reduce(function (prev,current) {
  10. // console.log(prev,current,current.num,current.price)
  11. return prev + current.num*current.price
  12. },0)
  13.  
  14. console.log(resGoods); //

7.arr.sort(function(val,i){})

理解:重排
使用:arr.sort()
参数:
返回值:重拍之后的数组
原数组:改变

返回重排之后的数组。
a-b; 从小到大
a-b>0; 从小到大
a-b<0; 从大到小
b-a; 从大到小
b-a>0; 从大到小
b-a<0; 从小到大
1,true; 倒序
-1,false;顺序
0; 不变位置

  1. let arr1 = [2,5,1,8];
  2. let res1 = arr1.sort(); //没有参数----升序
  3.  
  4. let arr2 = [2,5,1,8];
  5. let res2 = arr2.sort((a,b)=>a-b); //a-b a-b>0 b-a<0 升序-----本质a>b
  6.  
  7. let arr3 = [2,5,1,8];
  8. let res3 = arr3.sort((a,b)=>b-a); //b-a b-a>0 a-b<0 降序-----本质b>a
  9.  
  10. let arr4 = [2,5,1,8];
  11. let res4 = arr4.sort((a,b)=>1); //1 顺序
  12.  
  13. let arr5 = [2,5,1,8];
  14. let res5 = arr5.sort((a,b)=>-1); //-1 倒序
  15.  
  16. console.log('原数组',arr1); //[1, 2, 5, 8]
  17. console.log('返回值',res1); //[1, 2, 5, 8]
  18.  
  19. console.log('原数组',arr2); //[1, 2, 5, 8]
  20. console.log('返回值',res2); //[1, 2, 5, 8]
  21.  
  22. console.log('原数组',arr3); //[8, 5, 2, 1]
  23. console.log('返回值',res3); //[8, 5, 2, 1]
  24.  
  25. console.log('原数组',arr4); //[8, 1, 5, 2]
  26. console.log('返回值',res4); //[8, 1, 5, 2]
  27.  
  28. console.log('原数组',arr5); //[2, 5, 1, 8]
  29. console.log('返回值',res5); //[2, 5, 1, 8]

8.Array.from()

理解:将伪数组转成数组
使用:Array.from()
参数:
返回值:转换之后的数组
原数组:

  1. let arr1 = '012345';
  2.  
  3. let res1 = Array.from(arr1);
  4.  
  5. console.log('原数组',arr1); //
  6. console.log('返回值',res1); // ["0", "1", "2", "3", "4", "5"]

9.Array.of()

理解:将伪数组转成数组
使用:Array.of()
参数:
返回值:转换之后的数组
原数组:

  1. let arr1 = '012345';
  2.  
  3. let res1 = Array.of(arr1);
  4.  
  5. console.log('原数组',arr1); //
  6. console.log('返回值',res1); // ["012345"]

10.arr.copyWithin(target,start,end)

理解:
使用:arr.copyWithin(target,start,end)
参数:

  target(必须): 从该位置开始替换数据.
  > start(可选):从该位置开始读取数据.
  > end(可选):到该位置的前一个位置.

返回值:改变之后的数组
原数组:改变

  1. let arr1 = ['a','b','c','d','e','f','j'];
  2. let res1 = arr1.copyWithin(2,0);
  3.  
  4. let arr2 = ['a','b','c','d','e','f','j'];
  5. let res2 = arr2.copyWithin(2,0,1);
  6.  
  7. let arr3 = ['a','b','c','d','e','f','j'];
  8. let res3 = arr3.copyWithin(2);
  9.  
  10. console.log('原数组',arr1); // ["a", "b", "a", "b", "c", "d", "e"]
  11. console.log('返回值',res1); // ["a", "b", "a", "b", "c", "d", "e"]
  12. console.log('原数组',arr2); // ["a", "b", "a", "d", "e", "f", "j"]
  13. console.log('返回值',res2); // ["a", "b", "a", "d", "e", "f", "j"]
  14. console.log('原数组',arr3); // ["a", "b", "a", "b", "c", "d", "e"]
  15. console.log('返回值',res3); // ["a", "b", "a", "b", "c", "d", "e"]

11.arr.fill(target,start,end)

理解:将目标字符,填充数组
使用:arr.fill(target,start,end)
参数:

  target(必须): 被填充的元素.
  > start(可选):从该位置开始读取数据.
  > end(可选):到该位置的前一个位置.

返回值:改变之后的数组
原数组:改变

  1. let arr1 = ['a','b','c','d','e','f','j'];
  2. let res1 = arr1.fill(2,0);
  3.  
  4. let arr2 = ['a','b','c','d','e','f','j'];
  5. let res2 = arr2.fill(2,0,1);
  6.  
  7. console.log('原数组',arr1); // [2, 2, 2, 2, 2, 2, 2]
  8. console.log('返回值',res1); // [2, 2, 2, 2, 2, 2, 2]
  9. console.log('原数组',arr2); // [2, "b", "c", "d", "e", "f", "j"]
  10. console.log('返回值',res2); // [2, "b", "c", "d", "e", "f", "j"]

数组Array的API1的更多相关文章

  1. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别

    ArrayList和Vector的区别ArrayList与Vector主要从二方面来说.  一.同步性:   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...

  2. go 数组(array)、切片(slice)、map、结构体(struct)

    一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...

  3. javascript类型系统——数组array

    × 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...

  4. swift基本用法-数组array

    数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...

  5. C#中数组Array、ArrayList、泛型List<T>的比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  6. Javascript基础系列之(四)数据类型 (数组 array)

    字符串,数值,布尔值都属于离散值(scalar),如果某个变量是离散的,那么任何时候它只有一个值. 如果想使用变量存储一组值,就需要使用数组(array). 数组是由多个名称相同的树值构成的集合,集合 ...

  7. AS3 - 数组Array的几个常用方法(附样例)

    AS3 - 数组Array的几个常用方法(附样例) 2015-03-30 10:39发布:hangge浏览:241   Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法. 1 ...

  8. Linux数组array基础

    Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...

  9. 学习Swift -- 数组(Array) - 持续更新

    集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...

随机推荐

  1. 装了anaconda之后如何设置anaconda、python环境变量

    装了anaconda之后如何设置anaconda.python环境变量 1.装了anaconda之后如何设置anaconda环境变量 参考 https://www.cnblogs.com/avivi/ ...

  2. 关于java中为什么尽量把受检异常转化为非受检异常

    首先理解一下受检异常与非受检异常: 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机操作中可能遇到的异常,是一种常见的运行错误,只要程序设计的没有问题通常就不会发生.受检异常与程序的上 ...

  3. 引擎设计跟踪(九.14.3.1) deferred shading: Depthstencil as GBuffer depth

    问题汇总 1.Light support for Editor编辑器加入了灯光工具, 可以添加和修改灯光. 问题1. light object的用户互交.point light可以把对应的volume ...

  4. [双系统linux] ----双系统切换导致系统时间错误

    安装了linux双系统以后,发现每次双系统切换以后系统时间总会错误. 原因:Linux和win7(win10)双系统时间错误问题 时间相差8小时 MAC/linux 将系统硬件时间看待为UTC, 即U ...

  5. dubbo 中文官网

    根大家分享一下:dubbo的中文官网迁移到了githup上地址:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background ...

  6. linux下突破10万高并发的nginx性能优化经验

    一.这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项:1)nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数.worke ...

  7. Java泛型相关总结(上)

    最近在看<Java核心技术>泛型相关的部分,总结下. 泛型程序设计是什么? 泛型编程(generic programming)是计算机编程中的一种风格,类型通过参数指定.意味着编写的代码可 ...

  8. Javascript 使用postMessage对iframe跨域传值或通信

    实现目标:两个网站页面实现跨域相互通信 当前例子依赖于 jQuery 3.0 父页面代码:www.a.com/a.html <iframe id="myIframe" src ...

  9. Android手机不插USB,使用adb网络远程调试

    最近做项目,需要在手机不插USB的情况下连接设备查看打印的日志,发现可以通过adb connect命令实现: 1.先把手机通过USB与电脑相连 2.使用adb tcpip 5555命令,打开手机的55 ...

  10. 在命令行终端运行 Elisp 脚本

    通常,我们在 Emacs 中运行 Elisp 代码片段,但是也可能需要在命令行终端运行 Elisp 脚本程序.在命令行终端运行 Elisp 脚本需要使用 --script 选项,例如: emacs - ...