数组排序
var values=[0,1,5,10,15];
//sort会将数组转换成字符串
console.log(values.sort());//返回[0, 1, 10, 15, 5]
function compare(value1,value2){
if(value1
value2){
return 1
}else {
return 0
}
}
console.log(values.sort(compare));//返回[0, 1, 5, 10, 15]
数组的操作方法
//操作方法
//concat方法 拼接数组
var num1= [1,2,4,5]
var num2=num1.concat(1,2,3,[4,6,8]);
console.log(num2);//输出[1, 2, 4, 5, 1, 2, 3, 4, 6, 8]
//slice方法 切割数组
console.log(num2.slice(3));//输出[5, 1, 2, 3, 4, 6, 8]
console.log(num2.slice(3,4));//输出[5]
console.log(num2.slice(3,-1));//输出[5, 1, 2, 3, 4, 6]
console.log(num2.slice(-1,-1));//输出[]
//slice参数如果有负数,则用数组长度加上该数确定相对位置,如果结束位置小于起始位置则返回空数组
//splice方法 1删除 2插入 3替换 传递3个以上参数
num2.splice(1,3)//删除 删除的位置、要删除的项数
console.log(num2.valueOf());//[1, 1, 2, 3, 4, 6, 8]
num2.splice(2,0,9,9);
console.log(num2)//插入 位置 0 要插入的项 结果[1, 1, 9, 9, 2, 3, 4, 6, 8]
num2.splice(2,2,8,8,8);//替换加插入
console.log(num2);//输出结果[1, 1, 8, 8, 8, 2, 3, 4, 6, 8]
//位置方法 查找
console.log(num2.indexOf(8));//2
console.log(num2.lastIndexOf(8));//9
//迭代器
// 每一项返回true则返回true
var everyResult=num2.every(function (item,index,array) {
return item>0;
});
console.log(everyResult);//true
//有一项返回true则返回true
var someResult=num2.some(function (item,index,array) {
return item>7
})
console.log(someResult);//true
var fiterResult=num2.filter(function (item,index,array) {
return item>6
})
console.log(fiterResult);//[8, 8, 8, 8]
var mapResult=num2.map(function (item,index,array) {
return item-1;
})
console.log(mapResult)//[0, 0, 7, 7, 7, 1, 2, 3, 5, 7]
var sum=0;
var arrIndex=[];
num2.forEach(function (item,index,array) {
sum+=item;
arrIndex.push(index);
})
console.log(sum,arrIndex); //49 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
//缩小方法 reduce reduceRight
sum=0;
sum=num2.reduce(function (prev,cur,index,array) {
console.log(prev,'---',cur);
return prev+cur
})
// 1 "---" 1
// 2 "---" 8
// 10 "---" 8
// 18 "---" 8
// 26 "---" 2
// 28 "---" 3
// 31 "---" 4
// 35 "---" 6
// 41 "---" 8
console.log(sum)//49