js 引用类型之Array类型
//1.concat() 方法 不会改变原数组,会复制一个原数组的副本进行拼接 var arr = ['red', 'zhansan', 'xin']; var arr2 = arr.concat('2', ['3', '9']); console.log(arr); //[ 'red', 'zhansan', 'xin' ] console.log(arr2); //[ 'red', 'zhansan', 'xin', '2', '3', '9' ] //2.slice() 方法 不会改变原数组,含有两个参数时,截取的结果含头不含尾,只有一个参数时,截取的是从该参数指定位置到当前数组末尾的所有项 var arr3 = ['sasd', '2', 'zan', 'xin']; var arr4 = arr3.slice(1); var arr5 = arr3.slice(1, 3); console.log(arr4); //[ '2', 'zan', 'xin' ] console.log(arr5); //[ '2', 'zan' ] //3.splice() 方法 主要用途向数组中部插入数据 var arr6=[1,2,3,4,5] //删除 var arr7=arr6.splice(0,2)// 删除数组前两项 console.log(arr7)//[ 1, 2 ] console.log(arr6)//[ 3, 4, 5 ] 原数组arr6 被改变 //插入 //splice(起始位置,要删除的项数,要插入的项,要插入的项,...) var arr8=[2,3,4,6] var arr9=arr8.splice(2,0,"red",'oo')//会删除当前数组位置2的项目,然后在从位置2开始插入字符串red和oo console.log(arr9)//空数组 console.log(arr8)//[ 2, 3, 'red', 'oo', 4, 6 ] 改变原数组 //替换 //splice(起始位置,要删除的项数,要插入的项,要插入的项,...)插入的项不必和删除的项相等 var arr10=[1,2,'22','asd']; var arr11=arr10.splice(1,2,"你好",'hai'); console.log(arr11)//[ 2, '22' ] console.log(arr10)//[ 1, '你好', 'hai', 'asd' ] //4.位置方法 indexOf() lastIndexOf() 没找的情况下都返回-1,在比较第一个参数与数组的每一项时,必须使用全等 === var numbers=[1,2,3,4,5,6,4,7,8]; console.log(numbers.indexOf(4))//位置为 3 console.log(numbers.lastIndexOf(4))//位置为 6 //5.迭代方法 var num=[1,2,3,4,6,4,3,2,1]; var result=num.filter(function (item,index,arr){ return (item >2) //数组中值大于2的值 组成新的数组 }) console.log(result)//[ 3, 4, 6, 4, 3 ] var result1=num.map(function (item,index,arr){ return (item*2) //数组值全部*2 生成新数组 }) console.log(result1)//[ 2, 4, 6, 8, 12, 8, 6, 4, 2 ] var result2=num.forEach(function (item,index,arr){ console.log("item"+item+"-index"+index+"-arr:"+arr)//历遍数组 和for循环类似 //item1-index0-arr:1,2,3,4,6,4,3,2,1 //item2-index1-arr:1,2,3,4,6,4,3,2,1 //item3-index2-arr:1,2,3,4,6,4,3,2,1 //item4-index3-arr:1,2,3,4,6,4,3,2,1 //item6-index4-arr:1,2,3,4,6,4,3,2,1 //item4-index5-arr:1,2,3,4,6,4,3,2,1 //item3-index6-arr:1,2,3,4,6,4,3,2,1 //item2-index7-arr:1,2,3,4,6,4,3,2,1 //item1-index8-arr:1,2,3,4,6,4,3,2,1 }) //6.归并方法 reduce() reduceRight() 的函数接受4个参数,前一个值,当前值,项的索引和数组对象 var val=[1,2,3,4,5,6,7,8,9,10]; var sum=val.reduce(function(prev,cur,index,arr){ return prev+cur; }) console.log(sum)//55