zoukankan      html  css  js  c++  java
  • Lodash 方法库 原生实现 待完结。。。

     1 'use strict'
     2 let _ = {
     3 
     4   // 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
     5   chunk(arr, nub) {
     6       var res = [];
     7       for (var i = 0; i < arr.length; i += nub) {
     8         res.push(arr.slice(i, i + nub))
     9       };
    10       return res;
    11   },
    12 
    13   // 创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被认为是“假值”。
    14   compact (arr) {
    15       let res = [];
    16       arr.forEach( item => {
    17           typeof item === 'number' && res.push(item)
    18       } );
    19       return res
    20   },
    21 
    22   // 创建一个新数组,将array与任何数组 或 值连接在一起。
    23   concat(...arr) {
    24     let res = [];
    25     arr.forEach( item => {
    26       item instanceof Array ? item.forEach(i => res.push(i)) : res.push(item)
    27     } );
    28     return res
    29   },
    30 
    31   // 创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。(愚人码头注:即创建一个新数组,这个数组中的值,为第一个数字(array 参数)排除了给定数组中的值。)该方法使用 SameValueZero做相等比较。结果值的顺序是由第一个数组中的顺序确定。 
    32   // 注意: 不像 _.pullAll,这个方法会返回一个新数组。
    33   difference(arr, filtersArr) {
    34     arr.forEach( (item, index) => {
    35       if(filtersArr.includes(item)) {
    36         arr.splice(index, 1)
    37       }
    38     } );
    39     return arr
    40   },
    41 
    42   // 这个方法类似_.difference ,除了它接受一个 iteratee (愚人码头注:迭代器), 调用array 和 values 中的每个元素以产生比较的标准。 结果值是从第一数组中选择。iteratee 会调用一个参数:(value)。(愚人码头注:首先使用迭代器分别迭代array 和 values中的每个元素,返回的值作为比较值)。 
    43   // 注意: 不像 _.pullAllBy,这个方法会返回一个新数组。
    44 };
    45 
    46 console.log( _.chunk([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], 3) );
    47 console.log( _.compact([0, 1, false, 2, '', 3, null, '1']) );
    48 console.log( _.concat([1], 2, 3, 4, [5], [[6]]) );
    49 console.log( _.difference([1, 2, 3], [2, 4]) );
  • 相关阅读:
    Office Live for Small Business开启您创业的大门
    把时间管理培养成习惯
    面向对象主要概念
    《程序员羊皮卷》中的职场江湖
    时间管理——如何应对外界的干扰
    时间管理——珍惜时间碎片
    对于Office Live平台的思考
    Office Live第一步搭建网络工作环境
    时间管理——专注与放下
    时间管理——寻找精力与效率的平衡点
  • 原文地址:https://www.cnblogs.com/vant850/p/10474323.html
Copyright © 2011-2022 走看看