改变原数组函数:push、pop,shift、unshift,sort(需函),reverse,splice
不改变原数组函数:join,slice,foreach,map(需函),filter(需函),every(需函),some(需函)
1、数组中元素拼接(join()
)(原数组不会改变)
var arr = [1,2,3];
console.log(arr.join('-'))//1-2-3
2、push()和pop()(原数组改变)
//push(): 把里面的内容添加到数组末尾,并返回修改后的长度。
//pop():移除数组最后一项,返回移除的那个值,减少数组的length
var arr = ["Lily","lucy","Tom"];
var count = arr.push("Jack","Sean");
onsole.log(arr);//[ 'Lily', 'lucy', 'Tom', 'Jack', 'Sean' ]
console.log(count);//5
3、shift()和unshift()(原数组改变)
//shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
//unshift:将参数添加到原数组开头,并返回数组的长度 。
var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count);// 5
console.log(arr);//[ 'Jack', 'Sean', 'Lily', 'lucy', 'Tom' ]
4、sort()排序(原数组改变)
function sortNumber(a,b)
{
return a - b
}
arr = [13, 24, 51, 3];
console.log(arr.sort()) ; // [13, 24, 3, 51]
console.log(arr.sort(sortNumber)); // [3, 13, 24, 51](数组
5、reverse()数组反转(原数组改变)
var arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原数组改变)
6、slice()返回指定index下标范围内的数组(原数组未改变)
var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy); //[3, 5, 7, 9, 11]
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]
7、splice()(改变原数组 )
//删除-splice(删除开始位置,删除结束位置-不包含)
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
//插入splice(插入开始位置,0,插入项)
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
//插入和删除的元素替换,splice(起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。)
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
8、foreach(不改变原数组)
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
9、map映射(不改变原数组)
//map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
10、filter(不改变原数组)
//filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
11、every(不改变原数组)
//every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
});
console.log(arr2); //true
var arr3 = arr.every(function(x) {
return x < 3;
});
console.log(arr3); // false
12、some(不改变原数组)
//判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
});
console.log(arr2); //true
var arr3 = arr.some(function(x) {
return x < 1;
});
console.log(arr3); // false