掌握如何操作数组,会让你的开发变得更加高效
1、栈和队列方法(以下四个方法都改变原数组)
arr.push() //接受任意类型的参数,逐个添加到数组的末尾,并返回数组的长度 改变原数组
arr.pop() //从数组的末尾移除最后一项,减少数组的length值,返回移除的项
arr.shift() //移除数组中的第一个项并且返回该项,同时将数组的长度减一。
arr.unshift() //在数组的前端添加任意个项,并返回新数组的长度
2、排序
reverse() //反转数组的排序 改变原数组 返回操作后的数组 sort() 排序(升序) //改变原数组 返回操作后的数组
3、截取方法
concat() //数组拼接,返回拼接好的副本 不改变原数组 slice() //数组切割 一个参数:从该参数指定的起始位置截取到最后一位 //两个参数:起始位置 和 结束位置 但截取不包含结束位置的项 //注意:不改变原数组,返回值是 截取的数组项组成的数组 splice() //删除:指定两个参数(删除的起始位置,要删除的项数) //插入:指定三个参数(起始位置,0,要插入的项任意数量的项) //替换:指定三个参数(起始位置,要删除的项数,要插入的任意数量的项)
4、检索方法
indexOf() //从数组开头向后查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置 lastIndexOf() //从数组末尾向前查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置
5、迭代方法(参数: 每一项上运行的函数,运行该函数的作用域对象即this指向(可选,以下的实例都没用第二个参数))
①every()
对数组中的每一运行给定的函数,如果该函数对每一项都返回true,则该函数返回true
eg: var arr = [11,5,23,7,4,1,9,1]; var result = arr.every(function(item,index,arr){ return item >2; }); console.log(result); //false
②some()
对数组中的每一运行给定的函数,如果该函数对任一项都返回true,则返回true
eg: var result = arr.every(function(item,index,arr){ return item >2; }); console.log(result); //true
③filter()
对数组中的每一运行给定的函数,会返回满足该函数的项组成的数组
eg: var result = arr.filter(function(item,index,arr){ return item >2; }); console.log(result); // [11, 5, 23, 7, 4, 9]
④map()
对数组中的每一元素运行给定的函数,返回每次函数调用的结果组成的数组
eg: var result = arr.map(function(item,index,arr){ return item * 2; }); console.log(result); // [22, 10, 46, 14, 8, 2, 18, 2]
⑤forEach()
对数组中的每一元素运行给定的函数,没有返回值,常用来遍历元素
eg: var result = arr.forEach(function(item,index,arr){ console.log(item); });
6、数组序列化
toString() //在默认情况下都会以逗号分隔字符串的形式返回数组项 join(); //使用指定的字符串用来分隔数组字符串