添加和删除元素的方法
1.push & pop
var arr1 = [1,2,3,4,5,6];
// push:从尾部添加元素,返回元素的个数 / pop:从尾部删除元素,返回被删除的元素
var result2 = arr1.push('aa');
// 结果:arr1 = 1,2,3,4,5,6,aa result2 = 7(数组的个数)
var result = arr1.pop();
// 结果:arr1 = 1,2,3,4,5,6 result = aa(被抛弃的数组)
2.shift& unshift
var arr1 = [1,2,3,4,5,6];
// shift:从头部删除元素,返回被删除的元素 / unshift:从头部添加元素,返回添加元素后的个数
result = arr1.shift();
// 结果:arr1 = 2,3,4,5,6 result = 1(被抛弃的数组)
result = arr1.unshift('aa');
// 结果:arr1 = aa,2,3,4,5,6 result = 6(添加元素后数组的个数)
3. splice / slice
/*
aplice: 抛弃一些元素,在抛弃元素的位置插入一些元素,如果传入两个参数就只有删除没有追加,如果只有一个参数就是从该位置删除到最后 操作数组本身
第一个参数:起始位置
第二个参数:要删除元素的个数
第三个参数及以后的参数:追加的新元素,从删除的位置开始追加
*/
arr1 = [1,2,3,4,5];
result = arr1.splice(1,2,3,4,5);
// 结果:arr1 = 1,3,4,5,4,5 result = 2,3(被抛弃的数组)
/*
slice:截取范围 (左闭右开区间) 不操作数组本身
*/
arr1 = [1,2,3,4,5];
result = arr1.slice(2,5);
// 结果:arr1 = 1,2,3,4,5 result = 3,4,5(截取到的数组)
concat & join & sort & reverse
var arr1 = [1,2,3];
var arr2 = [true, 4,5];
result = arr1.concat(arr2);
// 结果:result=1,2,3,true,4,5 arr1 = 1,2,3 arr2 = true,4,5
// concat不操作数组本身,返回两个数组连接后的数组
result = arr1.join('a');
// 结果:result=1a2a3 arr1 = 1,2,3
//不操作数组本身,在每个元素之间添加内容
arr1 = [3,6,1,14,28,9];
result = arr1.sort();
// sort 正序排序, 按字母顺序排序
// 结果:result=1,14,28,3,6,9 arr1 = 1,14,28,3,6,9
arr1 = [3,6,1,14,28,9];
result = arr1.reverse();
// reverse: 将数组反转
// 结果:result=9,28,14,1,6,3 arr1 = 9,28,14,1,6,3
ECMAScript5中Array特性
位置方法: indexOf & lastIndexOf
var arr = [1,2,3,4,5,4,3,2,1];
var index = arr.indexOf(4);
// 结果: index = 3 返回第一次出现的位置
index = arr.indexOf(4,4);
// 结果: index = 5 返回从第一个参数位置开始第一次出现的位置
index = arr.lastIndexOf(4);
// 结果: index = 5 从后向前,返回第一次出现的位置
迭代方法: every & filter & forEach & some & map
// every: 对数组的每一元素进行函数的运行,如果都返回true最后结果为true,如果有一个返回false则结果为false
var result = arr.every(function(item, index, array){ // item:元素项,index:索引, array:数组本身
return item > 2;
});
// 结果: false
// some:和every相反,如果有一项返回true结果为true
// filter :对数组的每一个元素进行函数运行,把返回函数运行的结果过滤出来
result = arr.filter(function (item, index, array) {
return item > 2;
});
// 结果: 3,4,5,4,3
//fotEach: 循环数组的每一项,并执行一个方法
arr.forEach(function (item, index, array) {
item * 2;
});
// map :对数组的每一个元素进行函数运行,函数执行完毕后 把新的结果返回
result = arr.map(function (item, index, array) {
return item * 2;
});
// 结果: result = 2,4,6,8,10,8,6,4,2
缩小方法: reduce & reduceRight
// reduce: 处理前一个值和当前值的关系
var arr = [1,2,3,4,5,4,3,2,1];
result = arr.reduce(function (prev,cur,index,array) {
// 参数含义(前一个值, 当前值, 索引位置, 数组)
return prev + cur; // 将前一个值和当前值相加
});
// 结果: result = 25
// reduceRight : 从右侧开始遍历
result = arr.reduceRight(function (prev,cur,index,array) {
// 参数含义(前一个值, 当前值, 索引位置, 数组)
return prev + cur;
});
// 结果: result = 25
网友评论