数组常用的方法
- 1. join() 可以把数组转为指定分隔符号的字符串,返回该字符串
var arr1 = [1,2,3,4] arr1 = arr1.join("@")
- 2. concat() 可以合并多个数组,返回一个新的数组
var arr2 = [1,2,3] var arr3 = ["a","b","c"] var a = arr2.concat(arr3,["a1","b1","c1"]) // 依次合并arr2,arr3,。。。并返回合并后的数组
- 3. reverse() 倒序数组,将原来的数组倒序,并返回倒序后的数组
var ar1 = [1,2,3,4] ar1 = ar1.reverse()
- 4. slice(startIndex[,endIndex]) 截取数组中的一部分,返回截取的数组,原数组不变。 startIndex是开始解析的下标,endIndex是结束下标(如果省略则是截取到末尾)
var ar2 = [1,2,3,4,5] ar1 = ar2.slice(1,3) // 截取下标1-3之间的元素,不包含3
- 5. forEach(function(item,index){}) // 数组遍历元素的方法,参数是一个回调函数,回调函数的item参数则是遍历的数组元素,里面不能用break。item是当前元素,index是索引
var ar3 = [1,2,3,4,5] ar3.forEach(function(item){// item是数组的元素 console.log(item) })
- 6. map(function(item,i){return item}) 遍历数组元素,和forEach类似,但是会返回一个新的数组,新数组的元素则是回调函数返回的值。item是当前元素,index是索引
var ar4 = [1,2,3,4,5] var c = ar4.map(function(item){// item是数组的元素 console.log(item) return item+"a" // 把return的元素作为新数组的元素,通过map返回。如果不返回值,默认返回的是 undfined }) console.log(c, ar4)
- 7. fifilter(function(item){return boolean}) 过滤数组成员,并返回新的数组。如果返回值为true,则把该元素作为新数组的成员。
var ar5 = [1,2,3,4,5,6] var d = ar5.filter(function(item,index){ return item % 2 === 0 // 能被2整除是偶数,返回true,item元素会作为新数组从成员。 })
- 8. reduce(function(a,b){}) 依次处理数组成员,最终累计为一个值。
第一次遍历 : a 是数组的第一个元素, b 是数组的第二个元素第一次以后 : a 是上一轮的返回值 , b 则是遍历的 n 次 +1 个元素一般用于求数组所有元素累计的和值
var ar5 = [1,8,3,4,9,2] var count = ar5.reduce(function(a,b){ return a+b })
- 9. sort() 数组排序,如果传回调函数,默认则是按照字典排序(默认字符的编码)
sort(function(a,b){return a-b})
a,b 是相邻两个元素,如果返回值大于 0 ,则第一个元素在第二个元素后面,否则就是第一个元素在第二个元素前面。 // a-b 是由小到大, b-a 由大到小var arr1 = [1,3,2,9,7,4] var arr2 = arr1.sort(function(a,b){return a-b}) console.log(arr2) var arr3 = arr1.sort(function(a,b){return b-a}) console.log(arr3) // 数组对象数据排序 var arr3 = [{name:"张三",num:2},{name:"li si",num:1},{name:"wang",num:5}, {name:"liu",num:3}] var arr4 = arr3.sort(function(a,b){return a.num - b.num}) console.log(arr4)
- 10. some() 根据条件判断数组元素是否成立
some(function(el,index,arr){return boolean})
el 是遍历的每个元素, index 是当前遍历元素的索引, arr 当前数组。只要有一个元素返回 true ,整个 some 方法返回true 。只要一个元素成立,整个 some 方法就成立var arr5 = [{name:"张三",num:2},{name:"li si",num:1},{name:"wang",num:5}, {name:"liu",num:3}] // 查找数组里面是否有num=5的人,找到就返回true console.log(arr5.some(function(item){return item.num===7}))
- 11. every() 与some()比较类似,但是所有成员返回true,才返回true。否则是false
every(function(el,index,arr){return boolean})
var arr6 = [1,3,9,5,7] // 判定数组里面是否都是奇数 console.log(arr6.every(function(item){return item%2!==0}))
- 12. indexOf(element) 查看元素在数组中第一次出现的位置,如果没有该元素就返回-1。一般用于判断数组里面是否包含某个元素
var arr7 = [1,3,9,3,7] console.log(arr7.indexOf(10)) // 元素不存在返回-1
- 13. lastIndexOf(eleent) 查看元素在数组中最后一次出现的位置,
var arr8 = [1,3,9,3,7] console.log(arr8.lastIndexOf(3)) // 元素不存在返回-1
- 14. 只要是返回值是一个新数组的都支持链式操作
var ar = arra.map(function(item){ item.age=12;return item }).sort(function(a,b){ return a.num-b.num }).filter(function(item){return item.num!==3}) console.log(ar)