[英]reset array of objects with lodash
如何重置與“ db”不同的數組對象的屬性? 我需要將除“ db”以外的其他值設置為空字符串。
var arr = [
{
"db": "RHID",
"prv_value": "1",
"nxt_value": "1",
"diagnostic": "1"
},
{
"db": "CD_DOC_ID",
"prv_value": "2",
"nxt_value": "2",
"diagnostic": "2"
},
...
]
使用map函數,它需要一個數組和一個轉換函數。 它將每個元素傳遞到函數中進行修改。
_.map(arr, function(curr) {
for (var prop in curr) {
// Please read http://phrogz.net/death-to-hasownproperty
if (curr.hasOwnProperty(prop) && prop != 'db') {
curr[prop] = '';
}
}
return curr;
});
這就是我要做的:
_.map(arr, function(i) {
return _.assign(
_(i).omit('db').mapValues(_.constant('')).value(),
_.pick(i, 'db')
);
});
本質上,這使用map()創建新對象的數組。 它使用assign()來構建映射對象(它基本上是串聯兩個對象)。 傳遞給assign()
的第一個參數是刪除了db
屬性的對象。 這是使用omit()完成的 。 刪除此屬性后,我們可以使用mapValues()將所有內容設置回空字符串。
現在,我們要做的就是重新添加db
屬性,這就是為什么我們使用assign()
。 pick()函數用於獲取db
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.