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