ES5

检测数组

  1. let arr = [1,2,3,4]
  2. Array.isArray(arr)
  3. arr instanceof Array

转换方法

  1. arr.toLocaleString()
  2. arr.toString()
  3. arr.valueOf()

栈方法(后进先出)

  1. arr.push(item1,item2,....,itemx); // 添加元素,返回值为数组的长度,并且原数组会发生变化
  2. arr.pop(item1,item2,....,itemx); // 删除并返回数组的最后一个元素,原数组会发生变化

队列方法(先进先出)

  1. // 向数组的开头添加一个或更多元素,并返回新的长度。【原数组会发生变化】
  2. 数组名.unshift(newelement1,newelement2,....,newelementX);
  3. // 删除并返回数组的第一个元素 【原数组会发生变化】
  4. 数组名.shift();

数组的重排序——反转 和 排序

  1. // 颠倒数组中元素的顺序。返回颠倒后的数组 【原数组会发生变化】
  2. 数组名.reverse();
  3.  
  4. // 对数组的元素进行排序
  5. 数组名.sort(); // 默认排序顺序是根据字符串Unicode编码 【了解】
  6.  
  7. 数组名.sort(function(a,b){ //【重点】
  8. return a - b; // 升序(从小到大)
  9. })
  10. 数组名.sort(function(a,b){ //【重点】
  11. return b - a; // 降序(从大到小)
  12. })

操作方法

  1. // 数组拼接
  2. arr.concat(arr01,arr02,...) // 返回新的数组
  3.  
  4. // 从已有的数组中返回选定的元素。【截取后,不会改变原数组,而是返回新的数组】
  5. 数组名.slice(start,end); // 只有start,将会截取到数组末尾
    // 如果 start 的值为负数,假如数组长度为 length,则表示从 length+start 的位置开始复制,此时参数 end 如果有值,只能是比 start 大的负数,否则将返回空数组。
  6. console.log([1,2,3].slice(-1));//[3]
  7.  
  8. // 向/从数组中添加/替换项目,然后返回被替换出来的项目。【原数组会发生变化】
  9. 数组名.splice(index,howmany,item1,.....,itemX)
  10. 参数:
  11. index 从哪个索引位置开始删 数字
  12. howmany 替换几个 数字
  13. item1,.....,itemX 替换的数据(可以是多个) 可选

位置方法

  1. // 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
  2. 数组名.indexOf(searchElement); 【用的较多】
  3. // 返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找
  4. 数组名.lastIndexOf(searchElement);

数组元素的拼接

  1. // 用于把数组中的所有元素放入一个字符串。
  2. 数组名.join(separator);
  3. var arr = [ 1, 2, 4, 90, 67, 5, 434, 64];
  4. var str = arr.join('❤');
  5. console.log( typeof arr);//object类型
  6. console.log( str);

迭代方法

  1. // 数组遍历
  2. 数组名.forEach(function(value,index,currentArray){
  3. console.log(value);
  4. });
  5. /*第一个参数是遍历的数组内容
  6. 第二个参数是对应的索引
  7. 第三个参数数数组本身 */
  8.  
  9. // 过滤出符合筛选条件的元素,返回一个新的数组
  10. 数组名.filter(function(value,index,currentArray){
  11. return 条件; // 如:return value >= 1000;
  12. });
  13.  
  14. // 验证数组中的每一个元素是否都符合指定的条件,返回布尔值
  15. 数组名.every(function(value,index,currentArray){
  16. return 条件; // 如:return value >= 1000;
  17. });
  18.  
  19. // 验证数组中的元素,是否有符合指定条件的,返回布尔值
  20. 数组名.some(function(value,index,currentArray){
  21. return 条件; // 如:return value >= 1000;
  22. });
  23.  
  24. // 遍历数组中的每一个元素,更改后存入一个新的数组中,返回一个新的数组
  25. 数组名.map(function(value,index,currentArray){
  26. return 操作; // 如:return value * 2;
  27. });

缩小方法

  1. // reduce() 和 reduceRight()
  2. // 这俩个方法都会迭代数组的所有项,然后构建一个最终返回的值
  3. // reduce() 从数组的第一项开始,逐个遍历,reduceRight()从数组的最后一项开始,逐个遍历
  4. arr = [1, 2, 3, 4, 5]
  5. /*
  6. prev, 前一项
  7. cur, 当前项
  8. index, 索引
  9. array 当前数组
  10. */
  11. arr.reduce(function(prev, cur, index, array) {
  12. return prev + cur;
  13. }) // 15 原数组不发生改变
  14.  
  15. arr.reduceRight(function(prev, cur, index, array) {
  16. return prev + cur;
  17. }) // 15 原数组不发生改变

ES6

扩展运算符 ...

  1. let arr = [1, 9, 3, 4, 5, 7];
  2. console.log(...arr); // 讲一个数组转化为用逗号分隔的参数序列
  3. // 替代apply方法
  4. Math.max.apply(null,arr)
  5. console.log(Math.max.apply(null,arr));
  6. Math.max(...arr)
  7. console.log(Math.max(...arr));

copyWithin() 复制数组项

  1. // 数组实例的copyWithin()
  2. // 数组实例的copyWithin()方法会在当前数组内部将指定位置的成员复制到其他位置(会覆盖原理成员)
  3. // 然后返回新数组,也就是说,使用这个方法会改变修改当前数组
  4. // Array.prototype.copyWithin(target, start = 0, end = this.length)
  5. // target 可选,从该位置替换数据
  6. // start可选,从该位置读取数据,默认是0
  7. // end 可选,到该位置前停止读取数据,默认等于数组长度。如果是负值,表示倒数
  8.  
  9. console.log([1,2,3,4,5,6].copyWithin(0, 4)); // 5 6 覆盖 1 2 => [5, 6, 3, 4, 5, 6]

找到符合条件的数组项 find() findIndex()

  1. // 数组实例的find() 和 findIndex()
  2. // .find() 找出第一个符合条件的数组成员,参数是一个回调函数
  3. // 所有数组成员一次执行该回调函数,直到找到第一个返回为true的成员,然后返回该成员
  4. // 如果么有符合从条件的成员,则返回undefined。 findIndex() 返回 索引
  5. let arr11 = [1, 9, 3, 4, 5, 7];
  6. let a = arr11.find( (n) => n > 8)
  7. console.log(a); //
  8. let b = arr11.findIndex( (n) => n > 8)
  9. console.log(b); //

数组实例的fill() 给定值 填充到一个数组中,返回值为新数组

  1. let c = [1, 2, 6].fill('aaa')
  2. console.log(c); // ["aaa", "aaa", "aaa"]

数组实例的 entries() keys() values() -- 用于遍历数组

  1. // 他们三个都返回一个遍历器,for ··· of ··· 循环遍历
  2. // entries() 遍历 键值对
  3. // keys() 遍历 键
  4. // values() 遍历 值
  5. let arr22 = [1, 9, 7];
  6. for(let index of arr22.keys() ) {
  7. console.log(index);
  8. }
  9. for(let value of arr22.values() ) {
  10. console.log(value);
  11. }
  12. for(let entry of arr22.entries() ) {
  13. console.log(entry); // [0, 1] 键和值组成数组
  14. }

数组实例的includes()

  1. // Array.prototype.includes() 方法返回的是一个布尔值,表示数组是否包含给定的值
  2. console.log([1, 2, 3].includes(2)); // true
  3. console.log([1, 2, NaN].includes(NaN)); // true

数组的空位

  1. // 空位不是undefined
  2. console.log(Array(3)); // [empty × 3]
  3.  
  4. // forEach(),filter(),every()和some() 都会跳过空位
  5. // map() 会跳过空位,但是会保留这个值
  6. // join() 和 toString() 会将空位视为undefined
  7. // 而undefined 和 null 会被处理成空字符串
  8. // ES6 明确将空位转化为 undefined

迭代方法

  1. // 数组遍历
  2. 数组名.forEach(function(value,index,currentArray){
  3. console.log(value);
  4. });
  5. /*第一个参数是遍历的数组内容
  6. 第二个参数是对应的索引
  7. 第三个参数数数组本身 */
  1. let arr = [1,2,3,4,5,6,5,4];
  2. var everyResult = arr.every(function(item,index,array){
  3. return (item > 2)
  4. })
  5. // 判断数组中的每一项都符合return后的条件,返回 true & false
  6. console.log(everyResult)
  7.  
  8. var someResult = arr.some(function(item,index,array){
  9. return (item > 2)
  10. })
  11. // 判断数组中的每一项只要有一项符合return后的条件,返回 true & false
  12. console.log(someResult)
  13.  
  14. var filterResult = arr.filter(function(item,index,array){
  15. return (item > 2)
  16. })
  17. // 判断数组中的项符合条件,符合的项组成一个新的数组
  18. console.log(filterResult)
  19.  
  20. var mapResult = arr.map(function(item,index,array){
  21. return (item - 2)
  22. })
  23. // 对数组的每一项进行相同的计算,返回新数组
  24. console.log(mapResult)

Array

Array.from() 将类数组对象转化为真正的数组

Array.of() 将一组值转化为数组

  1. //类似数组的对象 和 可遍历数组对象
  2. let arrayLike = {
  3. '0': 'a',
  4. '1': 'b',
  5. '2': 'c',
  6. '3': 'd',
  7. 'length': 4
  8. }
  9. var arr1 = [].slice.call(arrayLike)
  10. console.log(arr1); // ["a", "b", "c", "d"]
  11. var arr2 = Array.from(arrayLike)
  12. console.log(arr2); // ["a", "b", "c", "d"]
  13.  
  14. // Array.of() 将一组值转化为数组
  15. let arr3 = Array.of(1, 5, 5, 8)
  16. console.log(arr3); // [1, 5, 5, 8]

ES6 之 数组的扩展的更多相关文章

  1. ES6对数组的扩展(简要总结)

    文章目录 数组的扩展(ES6) 1. 扩展运算符 2. Array.from 3. Array.of() 4. copyWithin() 5. find() 和 findIndex() 6. fill ...

  2. ES6对数组的扩展

    ECMAScript6对数组进行了扩展,为数组Array构造函数添加了from().of()等静态方法,也为数组实例添加了find().findIndex()等方法.下面一起来看一下这些方法的用法. ...

  3. 【ES6】数组的扩展——扩展运算符

    1.扩展运算符[三个点(...)将一个数组转为用逗号分隔的参数序列] 作用:用于函数调用 function add(x, y) { return x + y; } const numbers = [2 ...

  4. 【ES6】数组的扩展

    1.Array.from(): 将伪数组对象和遍历的对象转为真数组 如果一个对象的键都是正整数或者0,并且有 Length属性,那么这个对象很想数组,称它为伪数组. 伪数组: let obj = { ...

  5. 数组的复制及ES6数组的扩展

    一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...

  6. es6数组的扩展

    数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...

  7. ES6的新特性(8)——数组的扩展

    数组的扩展 扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) / ...

  8. ES6学习(三):数组的扩展

    chapter08 数组的扩展 8.1 扩展运算符 8.1.1 扩展运算符的含义 ... 如同rest运算符的逆运算,将一个数组转换为用逗号分隔的参数序列. console.log(...[1, 2, ...

  9. Es6学习笔记(7)----数组的扩展

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 数组的扩展 1.扩展运算符:可以将数组转化成逗号隔离的单个参数...[1,2,3] //控制台运 ...

随机推荐

  1. ASP.NETCore -----导入Excel文件

    前端上传excel文件利用npoi读取数据转换成datatable(netcore坑爹啊,用的vs2017竟然不能可视化) 前端界面 @{ Layout = null; } <!DOCTYPE ...

  2. android studio3.1 添加闪屏页面(启动欢迎界面)(例子简单无BUG)

    截图 启动页的 activity_splash.xml  我用了一张图片自己添加吧 <?xml version="1.0" encoding="utf-8" ...

  3. NO3 cat-xargs-cp-mv-rm-find命令

    ·cat            #查看文件内容        eg:cat oldboy.txt·xargs        #从标准输入获取内容创建和执行命令 -n 加数字:分组 ·cp       ...

  4. 完全卸载(删除)mac下自带的php

    /private/etc sudo rm -rf php-fpm.conf.defaultphp.ini php.ini.default /usr/bin sudo rm -rf php php-co ...

  5. NRF52840与NRF52832的性能区别

    蓝牙版本的不断更新,大部分客户慢慢都向往着蓝牙5.0.当然对于前不久NORDIC刚出的蓝牙5.0 NRF52840,很多人都还不是很了解.NRF52840可以说是NRF52832的超强升级版,虽然同样 ...

  6. Python的一些常用知识

    1.How to force urllib2 not to use a proxy Here is an example to remove proxy settings for all reques ...

  7. tomcat启动报错The JRE could not be found.Edit the server and change the JRE location

    解决: 在Windows->Preferences->Server->Runtime Environments 选择Tomcat->Edit,在jre中选择相应的jdk版本,完 ...

  8. read和write函数的使用

    https://blog.csdn.net/qq_33883085/article/details/88667003

  9. 057-while循环

    <?php $x=1; //初始化变量 while($x<=5){ //执行while循环 echo "$x<br />"; $x++; } ?>

  10. css把图片方框变为圆角

    border-radius:10px; 多少就设多少像素,个人需求.