簡體   English   中英

如何從對象javascript中刪除函數

[英]How to remove functions from object javascript

在我的應用程序中,我使用的是angular.js

我需要(通過 PUT 請求)發送具有 3 個屬性的對象,如下所示:

var item = {
  a: 1,
  b: 2,
  c: 3
}

但是當我執行console.log(item)時,它會顯示很多我不需要的信息,例如$delete$get等。 像這樣:

 {  
   ...
   $delete: function (params, success, error),
   $get: function (params, success, error),
   ...
   a: 1,
   b: 2,
   c: 3
}

我認為這是因為是 javascript 承諾之類的。
有沒有辦法只得到abc 也許用 lodash?


我的解決方案:

我像這樣使用lodash

 var valuesToPick = ['title', 'languageCode', 'jobTitle', 'location','economySegment', 'companyDescription' ...];

 var item = _.pick( vm.form, valuesToPick );

它們繼承自Object ,不屬於item

如果要迭代自己的屬性,請使用for ... in循環。

for (property in item) {
    item[property];
}

我像這樣使用lodash _.pick

 var valuesToPick = ['title', 'languageCode', 'jobTitle', 'location','economySegment', 'companyDescription' ...];

 var item = _.pick( vm.form, valuesToPick );

項目現在沒有功能,只有您的信息。

純Javascript

var objectFunctionLess=JSON.parse(JSON.stringify(objectWithFunctions))

這不是一個完美的解決方案,但它應該可以工作:

代替:

submitFunction(object, function () {})

做:

submitFunction(JSON.parse(angular.toJson(object)), function () {})

您可以將其拆分為:

var cleanObject = JSON.parse(angular.toJson(object))
submitFunction(cleanObject, function () {})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM