filter()
filter() 方法创建一个创建一个新数组,新数组中的元素是通过筛选原数组中的元素所得到的。筛选的方式是把传入的函数依次作用于每个元素,然后根据返回值是true
还是false
决定保留还是丢弃该元素。
filter() 方法不会对空数组进行检查。
语法:
Array.filter(function(currentValue, index, arr), thisValue)
参数:
示例:
一、去除数组中的空白字符
var arr = [' ', 'I', 'Love', ' ', ' ', 'you']; var f = function(currentValue) { return currentValue.trim(); } console.log(arr.filter(f)); //[ 'I', 'Love', 'you' ]
二、数组去重
var arr = [1, '1', '1', 2, 2, 5]; var f = function(currentValue, index, arr) { return arr.indexOf(currentValue) === index ? true : false; } console.log(arr.filter(f)); //[ 1, '1', 2, 5 ]
sort()
sort() 方法用原地算法对数组的元素进行排序,并返回排序后原数组的引用。排序算法是稳定的,默认按照字符串的Unicode码进行排序。
语法:
arr.sort([compareFunction])
参数:
compareFunction:可选,用于按某种顺序进行排列的函数。该函数接收两个参数,即第一个和第二个用于比较的元素。如果未指定该参数,则默认会把数组元素当作字符串进行比较。
示例:
一、对数组进行倒序排序
var arr = [1, 5, 9 , 8, 6, 3]; var compareFunction = function(firstEl, secondeEl) { if (firstEl > secondeEl) return -1; if (firstEl < secondeEl) return 1; return 0; }; arr.sort(compareFunction); console.log(arr); // [ 9, 8, 6, 5, 3, 1 ]
二、忽略大小写,对字符数组进行排序
var arr = ['Google', 'apple', 'Microsoft']; var compareFunction = function(firstEl, secondeEl) { if (firstEl.toUpperCase() < secondeEl.toUpperCase()) return -1; if (firstEl.toUpperCase() > secondeEl.toUpperCase()) return 1; return 0; }; console.log(arr.sort(compareFunction)); // [ 'apple', 'Google', 'Microsoft' ]