修改于 2019-11-10

1 length:长度

  1. <script>
  2. var arr = [1,2,3,4,5,6,7,8];
  3. console.log(arr.length);//arr.length = 8;
  4. arr.length = 5;//给定数组长度;
  5. console.log(arr);//arr = [1,2,3,4,5];
  6. delete arr[2];//删除arr[2],数组长度不变;
  7. console.log(arr);//arr = [1, 2, empty, 4, 5];
  8. console.log(typeof(arr[2]));//undefined;
  9. console.log(arr.length);
  10. </script>

2 pop,push:方法,把数组相当于一个栈

push(x):向数组尾部压入x,并返回新数组的长度

pop():从尾部弹出一个元素,并返回弹出的元素

  1. <script>
  2. var arr = [1,2,3,4,5];
  3. var number = arr.push(7);//arr.push(9) 相当于 arr[arr.length] = 7;
  4. console.log(arr);//arr = [1,2,3,4,5,7]
  5. console.log(number);//
  6. var num = arr.pop();
  7. console.log(arr);// arr = [1,2,3,4,5]
  8. console.log(num);//
  9. </script>

3 unshift 和 shift 方法,把数组相当于一个队列

unshift(x):向数组头部插入x,并返回数组长度

shift():从头部弹出一个元素,并返回弹出的元素

  1. <script>
  2. var arr = [1,2,3,4,5];
  3. var number = arr.unshift(9);
  4. console.log(arr);// arr = [9,1,2,3,4,5];
  5. console.log(number);//
  6. var num = arr.shift();
  7. console.log(arr);// arr = [1,2,3,4,5];
  8. console.log(num);//
  9. </script>

4 slice 和 splice 方法

slice(x,y):返回数组[x,y),索引位置的片段,左从0开始,右从-1开始,不影响原数组

splice(x,y,[.....]):x:删除的起始位置,y删除的个数(没有y的话,删除起始点开始所有),[...]为要插入数组的所有参数;splice方法改变原数组

  1. <script>
  2. var arr = [1,2,3,4,5];
  3. console.log(arr.slice(1,3));//[2, 3]
  4. console.log(arr);// [1,2,3,4,5]
  5. console.log(arr.slice(1));//[2, 3, 4, 5]
  6. console.log(arr.length);//
  7. console.log(arr.slice(0,-1));//[1, 2, 3, 4]
  8. var arr1 = [1,2,3,4,5,6];
  9. console.log(arr1.splice(1,2));//[2, 3]
  10. console.log(arr1);//[1, 4, 5, 6]
  11. console.log(arr1.splice(0));//[1, 4, 5, 6]
  12. console.log(arr1);//[]
  13. arr1 = [1,6]
  14. console.log(arr1.splice(0,1,1,2,3,'4','5'));//[1]
  15. console.log(arr1);//[1, 2, 3, "4", "5", 6]
  16. </script>

5 join 方法,把数组变为一个字符串(用指定分割符划分)//相反于string.split()方法,它把字符串变为数组

join("x"):将一个数组用x分割符生成一个字符串,join()默认分割符为",",不改变原数组;

  1. <script>
  2. var arr = [1,2,3,4,5];
  3. console.log(arr.join());//1,2,3,4,5
  4. console.log(typeof(arr.join()));//string
  5. console.log(arr.join("-"));//1-2-3-4-5
  6. console.log(arr.join(""));//
  7. console.log(arr);//[1,2,3,4,5]
  8. </script>

6 sort 和 reverse 方法

reverse():在原数组操作,并把元素颠倒,改变原数组

sort(x):不传x:对原数组按字母表顺序排列,undefined排在最后;传x:x一般为一个比较函数,用比较函数的返回值来判定排序,改变原数组

  1. <script>
  2. var arr = [1,3,2,4,5];
  3. console.log(arr.reverse());//[5, 4, 2, 3, 1]
  4. console.log(arr);//改变原数组,arr = [5, 4, 2, 3, 1]
  5. var arr1 = [4,3,2,undefined,1];
  6. console.log(arr1.sort());//[1, 2, 3, 4, undefined]
  7. console.log(arr1);//arr = [1, 2, 3, 4, undefined]
  8. var arr2 = [11,13,12];
  9. function flag(a,b){return a-b};//function(a,b);a为i+1,b为i;当要比较的时候,从中间开始比较
  10. console.log(arr2.sort(flag));//逆序排列,arr2 = [13, 12, 11];
  11. </script>

7 concat 方法

arr.concat(x): 将数组arr中的元素和参数x进行连接并返回连接后的数组,不会影响原先的arr数组

  1. <script>
  2. var arr = [1,2,3,4,5];
  3. console.log(arr.concat(1,'2',3,[4,5],[6,[7,8]]));//[1,2,3,4,5,1,'2',3,4,5,6,[7,8]]
  4. console.log(arr);//[1,2,3,4,5]
  5. </script>

8 Array.from()方法

将类数组和可遍历的对象变成真正的数组

  1. <script>
  2. var oLi = document.querySelectorAll('li');
  3. console.log(typeof(oLi));//object
  4. console.log(Array.from(oLi));//Array(3) [ li, li, li ]
  5. </script>

9 ...rest参数的逆运算,将数组变成参数列

console.log(...[1,2,3,4]); //1 2 3 4

10 find()和findIndex()

查找值或位置,参数为一个判断函数

  1. <script>
  2. var arr =new Array(1,2,3,4,5,6);
  3. console.log(arr.find((i) => { return i==2}))//
  4. console.log(arr.findIndex((i) => { return i==2}))//
  5. </script>

11 entries() , keys() ,values()对数组返回名字相对应的可遍历对象

  1. <script>
  2. var arr =new Array(1,2,3,4,5,6);
  3. console.log([...arr.entries()]);//键值对Array(6) [ (2) […], (2) […], (2) […], (2) […], (2) […], (2) […] ]
  4. console.log([...arr.keys()]);//键 Array(6) [ 0, 1, 2, 3, 4, 5 ]
  5. console.log([...arr.values()]);//值 Array(6) [ 1, 2, 3, 4, 5, 6 ]
  6. </script>

12 for in 和 for of

  1. <script>
  2. var arr =new Array(1,2,3,4,5,6);
  3. for(i in arr){//遍历键
  4. console.log(i);
  5. }//0,1,2,3,4,5
  6. for(i of arr){//遍历值
  7. console.log(i);
  8. }//1,2,3,4,5,6
  9. </script>

13 forEach(function(item,index,array)) 遍历处理函数

  1. <script>
  2. var arr =new Array(1,2,3,4,5,6);
  3. arr.forEach((i) => {console.log(i)});//1,2,3,4,5,6
  4. </script>

js基础总结03 --操作数组的更多相关文章

  1. GSAP JS基础教程--TweenLite操作元素的相关属性

    今天来学习用TweenLite操作元素的各种属性,以Div为例,其他元素的操作也是一样的,只是可能一些元素有它们的特殊属性,就可能不同罢了.   代码里用详细注释,我就不再重复啦,大家看代码就可以啦! ...

  2. 【2017-03-28】JS基础、DOM操作

    一.JS基础 1.javascript功能 ⑴进行数据运算 ⑵控制浏览器功能 ⑶控制元素的属性.样式.内容 2.javascript位置和格式 可以放在html页的任意位置,也可以创建一个以js结尾的 ...

  3. js基础总结01 --操作DOM

    1.选择对象 通过id来选择绑定一个dom节点 :document.getElementById('p1'): 通过类名来绑定一个类数组的对象集合,:document.getElementsByCla ...

  4. JS基础-分支结构-循环-数组

    1.分支结构  1.if结构    语法:    if(条件){       语句块:    }    注意:      1.条件尽量是boolean的,如果不是boolean的,以下条件值,会当做f ...

  5. js基础篇(dom操作,字符串,this等)

    首先我们来看这样一道题 <div id='foo' class='aa bb cc'></div>写出如何判断此div中是否含有aa(注:aa成立,aaa不成立) 首先,我们一 ...

  6. 二、JavaScript语言--JS基础--JavaScript进阶篇--数组

    1.什么事数组 我们知道变量用来存储数据,一个变量只能存储一个内容.假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果需要存储更多数据,那就会变的更麻烦.我们用 ...

  7. JS基础之属性操作注意事项

    1.js中注意问题 font-size 改成fontSize padding-top 改成paddingTop 2.js动态添加Class class    改成className 3.oInp.ty ...

  8. 1.7 js基础,字符串、数组小结

    一.arguments  实参参数的数组         实参[实际的值],形参[形式上的参数]         当参数个数不固定的时候使用.         示例: script> var g ...

  9. 【JS基础】DOM操作

    appendChild() //向节点添加最后一个子节点 createElement() //创建元素节点 createTextNode() //创建文本节点,字符串值

随机推荐

  1. Flask学习之旅--Flask项目部署

    一.写在前面 Flask 作为一个轻量级的 Web 框架,具有诸多优点,灵活方便,扩展性强,开发文档也很丰富.在开发调试的过程中,我们往往会使用 Flask 自带的 Web 服务器,但如果要投入到生产 ...

  2. 一次Commons-HttpClient的BindException排查

    线上有个老应用,在流量增长的时候,HttpClient抛出了BindException.部分的StackTrace信息如下: java.net.BindException: Address alrea ...

  3. Java 语言特点

    引入<Java核心技术:Ⅰ> 1. 简单性 Java 语法是 C++ 语法的一个“ 纯净” 版本.这里没有头文件. 指针运算(甚至指 针语法).结构. 联合.操作符重载. 虚基类等.如果你 ...

  4. vue中图片放大镜功能

    仿淘宝详情页图片鼠标移过去可对图片放大显示在右侧 效果图如下图,此功能支持PC端与移动端 接下来进入代码实现环节: 先准备两张图片,一张小图片叫 '土味.jpg',大小160*91:一张大图片叫 ' ...

  5. 第二章Java内存区域与内存溢出异常

    第二章 Java内存区域与内存溢出异常 一.概述 对与Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每个new操作去写delete/free代码,不容易出现内存泄露和内存溢出问 题, ...

  6. [Mathematics][MIT 18.02]Detailed discussions about 2-D and 3-D integral and their connections

    Since it is just a sort of discussion, I will just give the formula and condition without proving th ...

  7. Numpy中的三个常用正态分布相关的函数,randn,standard_normal, normal的区别

    这三个函数都可以返回随机正态分布(高斯Gaussian 分布)的数组,都可以从numpy.random中导出 先看三个函数的参数方式: randn: randn(d0, d1, ..., dn), 返 ...

  8. Mysql 为什么要选择 B+Tree

    算法对比 二叉树 当我查找 8 的时候需要走五步 红黑树 当我查询8的时候需要四次 相对于二叉树有了一些优化 没有无限延伸.红黑树的深度会很深(深度不可控制) hash 数据量大的话 查询很快(不能范 ...

  9. C、C++的Makefile模板

    目录 Makefile模板 用法 编译C程序 编译C++程序 其他 Tips Makefile模板 CC = gcc LD = $(CC) TARGET = $(notdir $(CURDIR)) S ...

  10. [LUOGU1437] 敲砖块

    题目描述 在一个凹槽中放置了 n 层砖块.最上面的一层有n 块砖,从上到下每层依次减少一块砖.每块砖 都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示. 14 15 4 3 23 33 33 7 ...