数组的增删操作(不改变原数组)
1.join (原数组不受影响)
该方法可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。
返回值: 返回一个新的字符串
2.split (原数组不受影响)
该方法是用过指定的分隔符,将字符串分割成数组。 返回值: 返回一个新的数组
数组的增删操作(直接改变原数组)
3. push
该方法可以在数组的最后面,添加一个或者多个元素 结构: arr.push(值) 返回值:返回的是添加元素后数组的长度.
4. pop
该方法可以在数组的最后面,删除一个元素 结构: arr.pop() 返回值:返回的是刚才删除的元素.
5. unshift
该方法可以在数组的最前面,添加一个或者几个元素 结构: arr.unshift(值) 返回值: 返回的是添加元素后数组的长度
6. shift
该方法可以在数组的最前面,删除一个元素 结构: arr.shift() 返回值: 返回的是刚才删除的元素.
数组的翻转和排序(改变数组)
7. sort(函数)
返回值:排序后的数组。 说明:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
8. reverse( )
定义:reverse() 方法用于颠倒数组中元素的顺序。 语法:arrayObject.reverse( ) 说明:该方法会改变原来的数组。
9. forEach( )
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。 forEach(): 没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。是变异性方法。 注意: forEach() 对于空数组是不会执行回调函数的。 语法:array.forEach(function(currentValue, index, arr), thisValue); currentValue(必需,数组中的元素。) 注:forEach() 本身是不支持的 continue 与 break 语句的,我们可以通过 some 、 every、try catch 来实现。 使用return 语句实现 continue 关键字的效果: 例:
var arr = [1, 2, 3, 4, 5];
arr.forEach(function (item) {
if (item === 3) { //元素等于3的时候跳过
return;
}
console.log(item); //1,2,4,5
});
使用try catch实现break 例:
try {
var array = ["first","second","third","fourth"]; // 执行到第3次,结束循环
array.forEach(function(item,index){
if (item == "third") {
throw new Error("EndIterative");
}
alert(item);// first,sencond
});
} catch(e) {
if(e.message!="EndIterative") throw e;
};
使用erery()实现break
var arr = [1,2,3,4,5];
var num = 3;
arr.every(function(v){
if(v == num) {
return false;
}else{
console.log(v);
return true;
}
});
非变异方法
1.filter( )
定义:filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
语法:arrayObject.filter(function(currentValue,index,arr),thisValue)
function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
函数参数:
参数 描述
currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"