• Lodash数组方法发现之旅-----First day


    现在在做的工程里,有几个工程里使用了lodash,发现使用特别多,有很多常用的像set  get include  map  indexOf filter  some  forEach  isEmpt  assign cloneDeep等等是经常使用的,发现是真的很好用,但是还有很多其他lodash的方法并没有被充分使用,所有决定每天有空就记录几个lodash的方法

    _.drop(array, [n=1])  

    对数组进行切片,去除array前面的n个元素。(n默认值为1。)

    不改变原数组,返回新数组

        var arr = [1,2,3,4,5,6,7]
        var newarr = _.drop(arr,3)
        //  arr => [1,2,3,4,5,6,7]
        //  newarr => [4,5,6,7]

    _.dropRight(array, [n=1]) 同drop只是从尾部去掉n个元素

    _.dropWhile(array, [predicate=_.identity])

    创建一个切片数组,去除array中从起点开始到 predicate 返回假值结束部分。predicate 会传入3个参数: (value, index, array)[predicate=_.identity] (Function): 这个函数会在每一次迭代调用。

        var arr = [
            { 'user': 'barney',  'active': false },
            { 'user': 'fred',    'active': true },
            { 'user': 'pebbles', 'active': true }
        ];
        var newarr = _.dropWhile(arr, function(o) { return !o.active; });
    // arr => 未改变原先的arr // newarr => [{ 'user': 'fred', 'active': true },{ 'user': 'pebbles', 'active': true }]

    _.flatten(array)

    将多维数组减少一层嵌套深度

    _.flattenDeep(array)

    将多维数组变成一维数组

    _.fill(array, value, [start=0], [end=array.length])

    使用 value 值来填充(替换) array,从start位置开始, 到end位置结束(但不包含end位置)。
    值得注意的是,这个方法改变的是原数组,而不是产生一个新数组
    并且end是结束的位置且不包含end

    var arr=[1,2,3,4,5,6,7]
    _.fill(arr, '*', 1, 3);
    // => arr=[1, '*', '*', 4,5,6,7]

    _.findIndex(array, [predicate=_.identity], [fromIndex=0])

    这个方法类似 _.find,区别是该方法返回第一个通过 predicate 判断为真值的元素的索引值(index),而不是元素本身。

    最基本,最常用的,已经特别熟悉了,就不描述了。

    _.indexOf(array, value, [fromIndex=0])

    返回首次 value 在数组array中被找到的 索引值, 如果 fromIndex 为负值,将从数组array尾端索引进行匹配。

    array (Array): 需要查找的数组。

    value (*): 需要查找的值。

    [fromIndex=0] (number): 开始查询的位置,默认为0。

      

    var arr=[1,2,3,4,5,6,2,2,2]
    _.indexOf(arr, 2, 2);
    // => 6
    var arr=[1,2,3,4,5,6,2,2,2] _.indexOf(arr, 2, -2); // =>7 var arr=[1,2,3,4,5,6,2,2,2] _.indexOf(arr, 2, -1); // =>8

    _.initial(array)

    去除数组array中的最后一个元素

    _.intersection([arrays])

    给定所有数组的交集

    _.intersection([2, 1, 3], [4, 2, 5], [1, 2, 6]);
    // => [2]
    
    _.intersection([1], [4, 2], [1, 2]);
    // => []
  • 相关阅读:
    【Collect】免费图片库网站推荐(国外高清可商用)
    "One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?"的解决方法
    "从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总
    Fira Code:适合程序员的编程字体
    【Notepad++】notepad++主题和字体设置(非常好看舒服的)
    【sql server】"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案
    【SQL】sql update 多表关联更新方法总结
    【C#】 List按指定字段的给出的自定义顺序进行排序
    3 常量与变量
    2 go语言的基础
  • 原文地址:https://www.cnblogs.com/katydids/p/11203831.html
Copyright © 2020-2023  润新知