js数组
创建数组
字面量方式创建(推荐使用)
var arr = ['red'.'green', 'blue'];
使用构造函数
var arr = new Array('red', 'green', 'blue');
数组赋值
var arr = []
arr[0] = 'red';
arr[1] = 'grren';
arr[2] = 'blue';
数组的基本操作
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = ['a', 'b', 'c'];
var arrPop = arr.pop();// 返回最后一项,同时删除最后一项
console.log(arrPop);
var arrPush = arr.push('d'); //往数组最后一项追加,返回新数组长度
console.log('push: '+arrPush); //
var arrShift = arr.shift(); // 删除数组第一个元素,返回数组第一个元素
console.log('shift:' + arrShift)
var arrUnshift = arr.unshift('e', 'f', 'd', 'g','g'); //往数组第一个位置插入元素,返回插入的元素
var arrSlice = arr.slice(3,6); // 从0开始,顾头不顾尾,返回数组的一段,不改变原数组
var arrSlice1 = arr.slice(-4,-1); // 效果同上,
console.log('数组长度: '+arr.length);
console.log(arrSlice);
console.log(arrSlice1);
console.log('g的位置:'+ arr.indexOf('g'));//从左往右,第一个g的位置
console.log(arr.lastIndexOf('g')); //从右往左,第一个g的位置
console.log(arr.indexOf('p'));// 如果没有找到返回-1;
var newArr = arr.sort(); //对数组进行排序,改变原数组
var reArr = arr.reverse(); // 对数组进行反转,改变原数组
var concatArr = arr.concat(['1', '2', '3']); //合并数组,返回新数组,不改变原来的数组
console.log('new: '+ concatArr);
console.log('arr: '+ arr);
</script>
</html>
总结:不改变原数组的方法有:concat, slice
数组的归并方法
reduce和reduceRight, reduceRight和reduce一样,区别在于从右边开始遍历,方向不同。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [1,2,3,4,5];
// 第一次执行回调函数, prev=1 , cur=2;
//第二次执行回调函数, prev = 1+2 , cur是数组上的3;
var sum = arr.reduce(function(prev, cur, index,arr){
return prev+cur;
});
console.log(sum); //15
</script>
</html>
数组的迭代方法
every():对数组中的每一项运行给定函数,如果每一项都返回True,则返回True;
arr = [1,2,3,4,5,6,7]
everyArr = arr.every(function(item,index,arr){
return (item> 3); // false
})
console.log(everyArr);
everyArr0 = arr.every(function(item,index,arr){
return (item> 0); //true
})
console.log(everyArr);
some():对数组中的每一项运行给定函数,如果有一项都返回True,则返回True;
arr = [1,2,3,4,5,6,7]
someArr = arr.some(function(item,index,arr){
return (item > 5)
})
console.log(someArr) //true
filter():对数组中的每一项运行给定函数,返回True项组成的数组;
arr = [1,2,3,4,5,6,7];
filterArr = arr.filter(function(item ,index, arr){
return (item>4)
})
console.log(filterArr); // 5,6,7
map():对数组中的每一项运行给定函数,返回函数调用结果组成的数组;
mapArr = arr.map(function(item,index,arr){
return (item*2)
})
console.log(mapArr); //"2,4,6,8,10,12,14"