版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_36065997/article/details/79081643
filter
filter()方法:用于把Array中的某些元素过滤掉,然后返回剩下的元素
filter()也接受一个函数,把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
arr.filter(function(ele,index,arr){ });
filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数ele,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置index和数组本身arr
例子1:
把一个数组arr = [‘A’, ”, ‘B’, null, undefined, ‘C’, ’ ‘];中的空字符串删掉:(学习trim())
var arr = ['A', '', 'B', null, undefined, 'C', ' '];
var r = arr.filter(function (s) {
return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
});
r; // 结果:['A', 'B', 'C']
例子2:
去除Array的重复元素
var r,arr = ['apple', 'strawberry', 'banana', 'pear', 'apple','orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index; //indexOf总是返回第一个元素的位置
});
console.log(r.toString());
sort
sort()方法:用于排序,默认把所有元素先转换为String再排序,所以不能直接对数字排序
但是sort()方法可以接受函数,可以利用函数对数组进行排序
按数字从小到大排序
var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
return 0;
});
console.log(arr); // 结果:[1, 2, 10, 20]
sort()方法会直接对Array进行修改,它返回的结果仍是当前Array:
var a1 = ['B', 'A', 'C'];
var a2 = a1.sort();
a1; // ['A', 'B', 'C']
a2; // ['A', 'B', 'C']
a1 === a2; // true, a1和a2是同一对象