[英]Remove a field from an object using Lodash
我只想在方法為add
數據屬性發送到API服務器,如果將方法為delete
,則不希望發送數據。
我有
var body =
{
id: 1,
method: method,
params: [
{
data: {
"key1" : "value1",
"key2" : "value2",
"key3" : "value3"
},
url: `/url/anything`
}
],
session: session,
verbose: 1
};
我試過了
if(method == 'delete') {
_.pick(body.params[0], ['data']);
}
我也試過
if(method == 'delete') {
_.pick(body.params[0],'data');
}
由於某種原因,我仍然看到我仍在發送data
。
如何調試這一點?
如果查看lodash pick文檔,您會發現它不會更改源對象,而是從源對象屬性創建新對象並返回新對象(如果要從源中刪除data屬性)對象,可以使用lodash中的unset方法從對象或一組道具中刪除屬性,也可以使用delete運算符
使用_.assign
:
var body =
{
id: 1,
method,
params: [
_.assign({url: `/url/anything`}, method === 'delete'
? null
: {
data: {
"key1" : "value1",
"key2" : "value2",
"key3" : "value3"
}
}
)
],
session,
verbose: 1
};
您可能需要這樣做。
if(method === 'delete') {
body.params[0].data = undefined;
}
在這種情況下,我們通過分配undefined
刪除data
的所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.