lodash常用方法結合實際專案解析

2021-09-28 17:01:12 字數 2406 閱讀 9855

官方定義:該方法類似_.assign, 除了它遞迴合併sources**物件自身和繼承的可列舉屬性到object目標物件。如果目標值存在,被解析為undefinedsources**物件屬性將被跳過。陣列和普通物件會遞迴合併,其他物件和值會被直接分配覆蓋。源物件從從左到右分配。後續的**物件屬性會覆蓋之前分配的屬性。

引數object(object): 目標物件。

[sources](...object): **物件。

返回(object): 返回object.

注意這方法會改變物件object.例:

var object = , , , [4, 6]],

'b': 1,

'c': '2',

'd': '',

'e': 8

}var other = , , , [1]],

'c': 3,

'd': null,

'e': null,

'g': 6

}merge(object, other)

object結果為

a: array(4)

0: 1:

2: 3: (2) [1, 6]

length: 4

b: 1

c: 3

d: null

e: null

g: 6

在使用一些常用元件時,都需要給v-model繫結乙個非null的初始值, 比如element的選擇器元件:單選,多選(初始值需要陣列)。但是後端介面傳過來的值的型別或許並不符合我們的預期,有些欄位在沒有資料的情況下就直接傳null給我們了。這個時候就需要我們自己做一下處理:從介面返回資料裡提取非null值再和自己定義的初始化物件遞迴合併。具體步驟如下:

1. 提取介面返回資料物件的非null值:

export const emptydeep = obj => 

each(obj, (item, key) => else else }}

})return o

}

2. merge(自定義初始化物件, emptydeep(介面返回物件))

最後得到預期物件。

官方定義:呼叫iteratee遍歷collection(集合) 中的每個元素, iteratee 呼叫3個引數: (value, index|key, collection)。 如果迭代函式(iteratee)顯式的返回false,迭代會提前退出。

注意:與其他"集合"方法一樣,類似於陣列,物件的 "length" 屬性也會被遍歷。想避免這種情況,可以用_.forin或者_.forown代替。

引數collection(array|object): 乙個用來迭代的集合。

[iteratee=_.identity](function): 每次迭代呼叫的函式。

返回(*): 返回集合collection

注意:迭代函式(iteratee)顯式的返回false,迭代會提前退出。例:

返回return false:

each([1, 7, 5, 2, 6], item => 

console.log('***', item)

// *** 1

})

返回return:

each([1, 7, 5, 2, 6], item => 

console.log('***', item)

// *** 1

// *** 2

})

相較於lodash庫的each, 陣列物件方法 foreach() 無法使用正常方法終止迴圈。

[1, 7, 5, 2, 6].foreach(item => 

console.log('***', item)

// *** 1

// *** 2

})

可以使用丟擲異常方式終止迴圈:

try 

console.log('***', item)

// *** 1

})} catch (e)

結合實際案例講解系統分析方法

從產品做出原型到研發程式設計實現,中間有一條鴻溝。需求越複雜,這條鴻溝就越大。如何彌補這個 鴻溝 呢?我們需要進行兩個工作 系統分析與架構設計。本篇 chat 先講其中的系統分析。系統分析強調對問題的調查,要解決的是系統必須做什麼的問題。此次交流以乙個零售企業的實際專案為例,講述如何進行系統分析。內...

結合實際場景談一談微服務配置

作為 nacos 5w1h 的系列文章,本文將圍繞 where 講述 nacos 配置管理的三個典型的應用場景 spring.datasource.url 生產環境的資料庫連線位址 spring.datasource.username 生產環境的資料庫使用者賬號 spring.datasource....

結合實際場景談一談微服務配置

作為 nacos 5w1h 的系列文章,本文將圍繞 where 講述 nacos 配置管理的三個典型的應用場景 spring.datasource.url 生產環境的資料庫連線位址 spring.datasource.username 生產環境的資料庫使用者賬號 spring.datasource....