// 1) 添加元素移除元素相关【改变原值】
//push(p1,p2,...);
//入栈,在数组的最后添加一个元素. 参数:要入栈的元素. 返回值:数组长度
var arr = [1,2,3,4,5];
var result = arr.push("txt","tom","lucy");
console.log(arr); //新数组: [1,2,3,4,5,"txt","tom","lucy"]
console.log(result); //新数组长度: 8
//pop();
//出栈,从数组的最后取出一个元素. 参数:none. 返回值: 出栈的元素
var arr = [1,2,3,4,5];
var result = arr.pop();
console.log(arr); //新数组: [1,2,3,4]
console.log(result); //取出的元素: 5
//shift();
//出队,将数组中第一个元素取出来. 参数:none. 返回值:出队的元素
var arr = [1,2,3,4,5];
var result = arr.shift();
console.log(arr); //新数组: [2,3,4,5]
console.log(result); //取出的元素: 1
//unshift(p1,p2,...);
//插队,将元素插入在数组的最前面. 参数:要插队的元素. 返回值:插队后队列的长度
var arr = [1,2,3,4,5];
var result = arr.unshift("txt","tom","lucy");
console.log(arr); //新数组: ["txt","tom","lucy",1,2,3,4,5]
console.log(result); //新数组长度: 8
//2)排序方法【改变原值】
//sort();
//按照字符在字符编码表中出现的位置进行排序
var arr = [19,47,51,4,2,32,24,6];
var result = arr.sort();
console.log(arr); //新数组 [19,2,24,32,4,47,51,6]
console.log(result); //返回值 [19,2,24,32,4,47,51,6]
//sort(comparator);
//comparator为一个比较器函数,函数可以接受两个值a,b;当a位于b之前的时候返回
var arr = [19,47,51,4,2,32,24,6];
console.log(arr); //原数组 [19,47,51,4,2,32,24,6]
var result = arr.sort(function(a,b){
if(a<b){
return 1;
}else{
return -1;
}
});
console.log(arr); //新数组 [51,47,32,24,19,6,4,2]
console.log(result); //返回值 [51,47,32,24,19,6,4,2]
//3)序列化方法【不改变原值】
//toString();
//将数组转换为字符串,数组中的元素通过逗号连接
var arr = [1,2,3,4,5];
var result = arr.toString();
console.log(arr); //原数组 [1,2,3,4,5]
console.log(typeof result); //返回值类型 string
console.log(result); //返回值 1,2,3,4,5
//join("v");
//将数组转换为字符串,数组中的元素通过v连接
var arr = [1,2,3,4,5];
var result = arr.join("#");
console.log(arr); //原数组 [1,2,3,4,5]
console.log(result); //返回值 1#2#3#4#5
//JSON.stringfy();
//将数组转换为JSON字符串
var result = JSON.stringify([1,2,3,4,5]);
console.log(typeof result); //返回值类型 string
console.log(result); //返回值 [1,2,3,4,5]
//4)截取方法
//concat(); 【不改变原值】
//将参数中的数组和当前数组合并为一个数组. 参数:多个数组. 返回值:合并后的数组
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
var result = arr1.concat(arr2,arr3);
console.log(arr1); //原数组 [1,2,3]
console.log(arr2); //原数组 [4,5,6]
console.log(arr3); //原数组 [7,8,9]
console.log(result); //返回值 [1,2,3,4,5,6,7,8,9]
//slice(begin,end); 【不改变原值】
//从当前数组中截取一个子数组并且范围. 参数: begin 起始位置; end 结束位置. 返回值:截取到的子数组
var arr = [1,2,3,4,5,6,7,8,9];
var result = arr.slice(2,7); //从索引为2的元素开始截取(7-2)个元素
console.log(arr); //原数组 [1,2,3,4,5,6,7,8,9]
console.log(result); //返回值 [3,4,5,6,7]
//splice(bengin,delete,[p1,p2,...]); 【改变原值】
//从数组中删除、插入、更新元素. 参数:begin 起始位置(删除,插入); delete 删除的个数; p1,p2,... 插入的值. 返回值:删除的元素组成的数组
var arr = [1,2,3,4,5];
var result = arr.splice(1,2,"txt","tom","lucy");
console.log(result); //删除的元素: [2,3]
console.log(arr); //删除后插入形成的新数组: [1,"txt","tom","lucy",4,5]
//5)迭代方法
//forEach(function(item,index,arr){})
//遍历当前数组. 参数:function(item,index,arr){}. 每次遍历一次,这个匿名函数就会被调用一次,forEach将当前遍历的元素,索引,当前数组当做实参传递给这个匿名函数
var arr = [1,2,3,4,5];
var result = arr.forEach(function(a,b,c){
console.log(a); //数组的项 1 /n 2 /n 3 /n 4 /n 5
console.log(b); //数组的索引 0 /n 1 /n 2 /n 3 /n 4
console.log(c); //数组本身 [1,2,3,4,5] /n [1,2,3,4,5] /n [1,2,3,4,5] /n [1,2,3,4,5] /n [1,2,3,4,5]
});
console.log(result); //返回值 undefined
//every(function(item,index,arr){})
//判断数组中所有的元素是否满足回调函数中给定的条件. 参数:function(item,index,arr){}. 当每次回调函数返回值为true,every方法的结果为true,当回调函数返回值为false,every方法的结果就为false
var arr = [1,2,3,4,5];
var result = arr.every(function(item,index,arr){
return item >3;
});
console.log(result); //返回值 false
//some(function(item,index,arr){})
//判断数组中是否有满足条件的元素. 参数:function(item,index,arr){}. 当回调函数返回true,some方法的结果就为true,当每次回调函数返回false,some方法的结果才为falses
var arr = [1,2,3,4,5];
var result = arr.some(function(item,index,arr){
return item >3;
});
console.log(result); //返回值 true
//filter(function(item,index,arr){})
//参数:function(item,index,arr){}. 当回调函数返回true,当前元素就会被添加到返回值数组中. 返回值:数组
var arr = [1,2,3,4,5];
var result = arr.filter(function(item,index,arr){
return item >3;
});
console.log(result); //返回值 [4,5]
//map(function(item,index,arr){})
//参数:function(item,index,arr){}. 回调函数可以返回任意类型的值,这些值都会被添加到map方法的返回值数组中. 返回值:数组
var arr = [
{name:"tom",age:13},
{name:"lucy",age:18},
{name:"leilei",age:16}
];
var result = arr.map(function(item){
// return item.age;
return item.name;
});
console.log(result); //返回值 /* [13,18,16] */ ["tom","lucy","leilei"]
//6)查找方法
//indexOf();
//查找元素在数组中的位置. 参数:查找元素. 返回值:元素对应的索引.
var arr = [1,2,3,4,5];
var result = arr.indexOf(4);
console.log(result); //返回值 3
//lastlndexOf();
//查找元素在数组中的位置. 参数:查找元素. 返回值:元素对应的索引.
var arr = [1,2,3,4,5];
var result = arr.lastIndexOf(1);
console.log(result); //返回值 0