日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

你還在用sort排序?分享30個用的最頻繁的lodash工具函數

來源: 責編: 時間:2024-04-28 17:19:04 233觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。事情起因是,有幾個小伙伴在對一個數據進行排序,做了激烈的討論,這組數據,想要根據num字段進行排序~把我氣的,你們就不能直接

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。wfV28資訊網——每日最新資訊28at.com

事情起因是,有幾個小伙伴在對一個數據進行排序,做了激烈的討論,這組數據,想要根據num字段進行排序~把我氣的,你們就不能直接用lodash的sortBy嗎?你們再怎么實現,能實現得比lodash好?wfV28資訊網——每日最新資訊28at.com

const arr = [    {num: 3,name: 'hh'},    {num: 1,name: 'xx'},    {num: 2,name: 'aa'}]// 使用lodashconsole.log(_.sortBy(arr, ['num']))

所以,我覺得有必要跟各位小伙伴分享一下,我在項目中用的最多的30個lodash工具方法wfV28資訊網——每日最新資訊28at.com

注:此文是總結一些常用的lodash方法,案例從文檔拿的,介意的朋友請勿看~wfV28資訊網——每日最新資訊28at.com

我要對數組進行一系列操作!

取「交集」!

intersection

返回一個包含所有傳入數組交集元素的新數組。wfV28資訊網——每日最新資訊28at.com

_.intersection([2, 1], [4, 2], [1, 2]);  // => [2]

intersectionBy

根據某個字段來進行計算交集wfV28資訊網——每日最新資訊28at.com

_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');  // => [{ 'x': 1 }]

intersectionWith

根據某個條件函數來計算交集,比如使用isEqualwfV28資訊網——每日最新資訊28at.com

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];  var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];    _.intersectionWith(objects, others, _.isEqual);  // => [{ 'x': 1, 'y': 2 }]

取「合集」!

union

返回一個新的聯合數組。wfV28資訊網——每日最新資訊28at.com

_.union([2], [1, 2]);  // => [2, 1]

unionBy

根據某個字段來計算合集wfV28資訊網——每日最新資訊28at.com

_.unionBy([{ 'x': 1, 'y': 5 }], [{ 'x': 2, 'y': 3 }, { 'x': 1, 'y': 6 }], 'x');  // => [{ 'x': 1, 'y': 5 }, { 'x': 2, 'y': 3 }]

unionWith

根據某個條件函數來計算合集wfV28資訊網——每日最新資訊28at.com

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];  var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];    _.unionWith(objects, others, _.isEqual);  // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]

取「差集」!

同上面兩種工具函數,這里無需多言~wfV28資訊網——每日最新資訊28at.com

  • difference
  • differenceBy
  • differenceWith

取數組「總和」!

sum

返回總和。wfV28資訊網——每日最新資訊28at.com

_.sum([4, 2, 8, 6]);  // => 20

sumBy

根據某個字段計算并返回總和。wfV28資訊網——每日最新資訊28at.com

var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];    _.sumBy(objects, function(o) { return o.n; });  // => 20    // The `_.property` iteratee shorthand.  _.sumBy(objects, 'n');  // => 20

取「平均數」!

mean

計算平均數wfV28資訊網——每日最新資訊28at.com

_.mean([4, 2, 8, 6]);  // => 5

meanBy

根據某個字段計算出平均值wfV28資訊網——每日最新資訊28at.com

var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];    _.meanBy(objects, function(o) { return o.n; });  // => 5    // The `_.property` iteratee shorthand.  _.meanBy(objects, 'n');  // => 5

根據字段或條件「排序」!

sortBy

var users = [  { 'user': 'fred', 'age': 48 },  { 'user': 'barney', 'age': 36 },  { 'user': 'fred', 'age': 40 },  { 'user': 'barney', 'age': 34 }  ];    _.sortBy(users, function(o) { return o.user; });  // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]    _.sortBy(users, ['user', 'age']);  // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]    _.sortBy(users, 'user', function(o) {  return Math.floor(o.age / 10);  });  // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

超級實用的工具函數!

我要「淺拷貝」!

clone

const obj1 = [{a: 1 }]const obj2 = _.clone(obj1)console.log(obj1 === obj2) // falseconsole.log(obj1.a === obj2.a) // true

我要「深拷貝」!

cloneDeep

const obj1 = [{a: 1 }]const obj2 = _.cloneDeep(obj1)console.log(obj1 === obj2) // falseconsole.log(obj1.a === obj2.a) // false

debounce 我要「防抖」!

參數

  1. func  (Function)
  2. [wait=0]  (number)
  3. [optinotallow=]  (Object)
  4. [options.leading=false]  (boolean)
  5. [options.maxWait]  (number) : 設置 func 允許被延遲的最大值。
  6. [options.trailing=true]  (boolean)

返回

(Function)wfV28資訊網——每日最新資訊28at.com

例子

// 避免窗口在變動時出現昂貴的計算開銷。jQuery(window).on('resize', _.debounce(calculateLayout, 150)); // 當點擊時 `sendMail` 隨后就被調用。jQuery(element).on('click', _.debounce(sendMail, 300, {  'leading': true,  'trailing': false})); // 確保 `batchLog` 調用1次之后,1秒內會被觸發。var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });var source = new EventSource('/stream');jQuery(source).on('message', debounced); // 取消一個 trailing 的防抖動調用jQuery(window).on('popstate', debounced.cancel);

throttle 我要「節流」!

參數

  1. func  (Function)
  2. [wait=0]  (number)
  3. [optinotallow=]  (Object)
  4. [options.leading=true]  (boolean)
  5. [options.trailing=true]  (boolean)

返回

(Function)wfV28資訊網——每日最新資訊28at.com

例子

// 避免在滾動時過分的更新定位jQuery(window).on('scroll', _.throttle(updatePosition, 100)); // 點擊后就調用 `renewToken`,但5分鐘內超過1次。var throttled = _.throttle(renewToken, 300000, { 'trailing': false });jQuery(element).on('click', throttled); // 取消一個 trailing 的節流調用。jQuery(window).on('popstate', throttled.cancel);

我「獲取」對象中的某幾個字段!

pick

var object = { 'a': 1, 'b': '2', 'c': 3 };    _.pick(object, ['a', 'c']);  // => { 'a': 1, 'c': 3 }

我要「剔除」掉對象中的某幾個字段!

omit

var object = { 'a': 1, 'b': '2', 'c': 3 };    _.omit(object, ['a', 'c']);  // => { 'b': '2' }

我要判斷一個變量的類型!

isUndefined

如果 value 是 undefined ,那么返回 true,否則返回 falsewfV28資訊網——每日最新資訊28at.com

_.isUndefined(undefined);  // => true    _.isUndefined(null);  // => false

isNull

如果 value 為null,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isNull(null);  // => true    _.isNull(undefined);  // => false

isString

如果 value 為一個字符串,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isString('abc');  // => true    _.isString(1);  // => false

isPlainObject

如果 value 為一個普通對象,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

function Foo() {  this.a = 1;  }    _.isPlainObject(new Foo);  // => false    _.isPlainObject([1, 2, 3]);  // => false    _.isPlainObject({ 'x': 0, 'y': 0 });  // => true    _.isPlainObject(Object.create(null));  // => true

isNumber

如果 value 為一個數值,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isNumber(3);  // => true    _.isNumber(Number.MIN_VALUE);  // => true    _.isNumber(Infinity);  // => true    _.isNumber('3');  // => false

isArray

如果value是一個數組返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isArray([1, 2, 3]);  // => true    _.isArray(document.body.children);  // => false    _.isArray('abc');  // => false    _.isArray(_.noop);  // => false

isBoolean

如果 value 是一個布爾值,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isBoolean(false);  // => true    _.isBoolean(null);  // => false

isFunction

如果 value 是一個函數,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isFunction(function(){});  // => true    _.isFunction('');  // => false

isNill

如果 value 為null 或 undefined,那么返回 true,否則返回 false。wfV28資訊網——每日最新資訊28at.com

_.isNil(null);  // => true    _.isNil(void 0);  // => true    _.isNil(NaN);  // => fals


wfV28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-86206-0.html你還在用sort排序?分享30個用的最頻繁的lodash工具函數

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Next.js 14 初學者指南

下一篇: 探索MVVM Toolkit:簡化.NET應用開發,構建高效MVVM架構

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国内精品写真在线观看| 久久亚洲综合网| 99精品国产一区二区青青牛奶| 亚洲高清资源综合久久精品| 在线观看成人av电影| 亚洲国产欧美在线人成| 亚洲人体影院| 亚洲男人天堂2024| 久久精品国产2020观看福利| 欧美sm重口味系列视频在线观看| 久久躁狠狠躁夜夜爽| 欧美久久视频| 国产精品日韩高清| 一色屋精品视频在线观看网站| 亚洲另类春色国产| 亚洲欧美日韩在线高清直播| 另类图片综合电影| 欧美色123| 国产亚洲欧美日韩日本| 亚洲精品乱码| 午夜一区二区三区不卡视频| 蜜桃av一区二区| 欧美午夜精品久久久久久人妖| 国产一区二区三区黄| 亚洲三级视频在线观看| 亚洲欧美在线免费| 免费成人在线观看视频| 国产精品久久久久婷婷| 在线日韩av永久免费观看| 亚洲小视频在线| 美女露胸一区二区三区| 国产精品日韩欧美一区| 亚洲黄一区二区| 性久久久久久久久| 欧美精品一区在线观看| 国产无一区二区| 亚洲人体1000| 久久精品中文字幕免费mv| 欧美日韩亚洲成人| 激情六月婷婷久久| 亚洲主播在线| 欧美精品1区2区| 国产一区二三区| 亚洲天堂男人| 欧美成ee人免费视频| 国产日韩欧美电影在线观看| 一区二区三区不卡视频在线观看| 久久久久久久高潮| 国产精品免费小视频| 亚洲茄子视频| 久久久精品国产一区二区三区 | 久久国产免费看| 欧美日韩在线播放三区| 亚洲电影欧美电影有声小说| 午夜精品影院| 欧美视频在线视频| 亚洲激情在线播放| 久久国产精品久久久久久电车| 欧美三日本三级少妇三2023| 亚洲欧洲日本专区| 久久综合久久综合久久综合| 国产免费成人av| 亚洲网站啪啪| 欧美日韩成人免费| 在线成人欧美| 久久久久久久久综合| 国产欧美日韩一区二区三区在线观看| 99re在线精品| 欧美 日韩 国产 一区| 国内精品久久久久久| 午夜国产不卡在线观看视频| 欧美人与性禽动交情品| 亚洲国产日韩在线| 久色成人在线| 一区二区亚洲精品| 久久久精品2019中文字幕神马| 国产美女一区| 亚洲女人小视频在线观看| 国产精品99免视看9| av成人天堂| 欧美日韩国产在线播放| 亚洲精品一区二区网址| 欧美**人妖| 亚洲激情欧美激情| 欧美 日韩 国产在线| 在线观看亚洲精品| 蜜桃精品久久久久久久免费影院| 国内精品一区二区三区| 久久久国际精品| 尤物网精品视频| 久久伊人亚洲| 亚洲二区在线观看| 欧美成人一区二区| 亚洲精品乱码| 欧美视频日韩视频| 亚洲视频精选| 国产精品久久久久久久久久免费看| 一区二区三区四区国产精品| 欧美视频精品一区| 亚洲影视中文字幕| 国产女同一区二区| 久久久国产亚洲精品| 在线播放中文字幕一区| 老司机午夜免费精品视频| 亚洲国产成人午夜在线一区| 欧美.www| 一本久久综合亚洲鲁鲁五月天| 欧美视频在线免费| 午夜精品一区二区三区在线| 国产亚洲人成网站在线观看| 久久夜色精品国产欧美乱| 亚洲国产天堂久久国产91| 欧美久久久久久蜜桃| 亚洲一区欧美| 国产一区91精品张津瑜| 玖玖玖国产精品| 欧美午夜精品久久久久久超碰| 亚洲欧美日韩在线观看a三区| 国产一区二区三区自拍| 免费中文日韩| 一本综合久久| 欧美日韩免费一区| 午夜欧美视频| 一区精品在线| 欧美色区777第一页| 欧美一区二区在线视频| 亚洲第一二三四五区| 欧美日韩三级视频| 欧美在线一二三| 亚洲国产天堂久久综合网| 欧美午夜精品电影| 久久乐国产精品| 日韩天堂av| 国产一区二区精品| 男女激情视频一区| 亚洲一区二区在线| 影音先锋另类| 欧美三级韩国三级日本三斤| 欧美伊人久久| 亚洲人午夜精品| 国产精品日韩一区二区三区| 久久夜色精品| 亚洲视频专区在线| 伊人久久婷婷色综合98网| 欧美日韩免费高清| 久久精品亚洲| 一区二区三区高清不卡| 激情一区二区三区| 欧美午夜精品久久久久久孕妇| 久久久.com| 一区二区三区av| 一区二区视频免费在线观看| 欧美三日本三级三级在线播放| 欧美在线免费观看亚洲| 99在线精品免费视频九九视| 国产伪娘ts一区| 欧美日韩视频不卡| 久久久久久久久久久成人| 一区二区三区久久精品| 在线精品国精品国产尤物884a| 欧美日韩一区二区三区高清| 久久久人成影片一区二区三区| 国产精品99久久久久久久女警| 一区二区三区在线不卡| 国产精品裸体一区二区三区| 欧美大片免费| 久久久成人精品| 亚洲永久免费精品| 亚洲三级免费| 黄色成人av| 国产乱码精品一区二区三区不卡 | 欧美精品一区二区在线观看| 久久精品国产视频| 亚洲私人影吧| 亚洲精品日韩精品| 伊人激情综合| 国产日产欧产精品推荐色| 欧美视频中文字幕在线| 欧美jjzz| 亚洲一区二区三区视频| 亚洲精品美女在线观看| 一区二区三区在线观看国产| 国产伦精品免费视频 | 国产精品盗摄久久久| 欧美护士18xxxxhd| 久久久精彩视频| 欧美亚洲在线观看| 在线综合视频| 亚洲免费观看高清在线观看| 伊人久久大香线| 狠狠色综合色综合网络| 国产亚洲精品美女| 国产精品丝袜91| 国产精品久久久久久久久久久久| 欧美日韩视频免费播放| 欧美精品一区三区在线观看| 你懂的亚洲视频| 狂野欧美一区| 久久婷婷国产麻豆91天堂| 欧美中文字幕不卡| 午夜一区二区三区不卡视频| 亚洲欧美日本视频在线观看| 亚洲免费视频一区二区| 夜夜爽夜夜爽精品视频|