forEach()方法
var arr = ["赵","周","李","孙","钱"];
arr.forEach(function(a){
console.log("a=" +a);
});
IE8及以下的浏览器不兼容
forEach()
方法需要一个函数作为参数,浏览器会调用这个函数。
数组中有几个元素,函数就会执行几次,每次执行,浏览器会将遍历到的元素作为实参的形式传递进来,我们可以定义形参来读取这些内容。
浏览器会在回调函数中传递三个参数。
- 第一个参数是当前正在遍历的元素
- 第二个参数是元素的索引
- 第三个参数是该数组自己
slice()
该方法将特定位置的元素封装到一个新的数组中返回
var result = arr.slice(开始索引,结束索引);
该方法不会改变原数组。
参数可以是负数,第二个参数可以省略。
splice()
可以用于删除数组中的指定元素。会将指定元素从原数组中删除,并将被删除元素作为返回值返回。并且可以插入一些元素。
var result = arr.splice(开始索引,删除数量,参数三);
第三个参数及以后可以传递一些新的元素,这些元素会自动插入到开始位置索引前面。
删除数组中的重复元素:
var arr = [1,2,5,1,2,6];
for(var i=0; i<arr.length; i++){
for(var a=i+1; a<arr.length; a++ ){
if (arr[i] == arr[a]){
arr.splice(a,1);
};
};
};
console.log(arr);
上面的程序看起来还行,但是当后面出现两个重复的元素相邻时,会出现删不掉的情况。
因为当删除了一个元素后,后面的元素会自动补位,此时我们需要再比较一次后面的元素,所以需要将if
条件判断修改为:
if (arr[i] == arr[a]){
arr.splice(a,1);
a--;
};
concat()
可以拼接两个数组,括号内不仅可以传入数组,还可以传入元素。
sort()
sort()
对于纯数组进行排序时,也是按照Unicode编码来排序。
我们可以通过传入一个回调函数来指定排序规则:
- 回调函数需要定义两个形参
- 浏览器会分别使用数组中的元素作为实参去调用回调函数
- 浏览器会根据回调函数的返回值来决定元素的顺序
- 如果返回值大于0,则元素会交换位置,否则不变。
arr = [5,4,2,1,6,6,2,3];
arr.sort(function(a,b){
return a-b;
});
console.log(arr);
如果需要升序排列,则返回a-b
如果需要降序排列,则返回b-a