Array - map, reduce, filter, sort

  • map 接收的回调函数有三个参数, 还可以选择传入参数供回调函数使用。

var new_array = arr.map(function callback(currentValue, index, array) {

// Return element for new_array

}[,thisArg])

  • reduce 是从 array 左往右,两个变量进行运算,得到的结果起来和下一个变量进行计算的方法。可以传入一个初始值供叠加。

arr.reduce(callback[,initialValue])

  • filter 类似 map ,对每个变量进行筛选操作,返回筛选后的 array
var arr = ['A', '', 'B', null, undefined, 'C', '  '];
var r = arr.filter(function(s) {
    return s && s.trim();
});
r; // ['A', 'B', 'C']
  • sort 直接对原 array 进行操作,但要注意的是,它会根据 ASCII 码来排序,所以可能出现奇怪的结果,这时候我们需要传入自己书写的函数进行判断。
var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
    if (x < y) {
        return -1;
    }
    if (x > y) {
        return 1;
    }
    return 0;
}); // [1, 2, 10, 20]

相关补充

  • Math.max.apply(null, [3, 5, 4]); // 5 用以解决 this 的指向坑
  • Math.max.call(null, 3, 5, 4); // 5 同上,只是传入的参数形式不同
  • parseInt(string, radix) 还有第二个参数,如果忽略的话可能会导致错误。
  • string.split 分离字符串
  • string.substring 可以得到字符串子链
  • array.splice(startIndex, deleteNum, addSth),我利用它更新 array
  • array.slice(start, end) 切片操作,python 中也有,end 位置的变量不会被计入,总数也就是 end - start

相关题目:

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001435119854495d29b9b3d7028477a96ed74db95032675000

你可能感兴趣的:(Array - map, reduce, filter, sort)