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
原文地址:https://www.cnblogs.com/xzma/p/7479651.html