如何从对象 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];
}

这不是一个完美的解决方案,但应该可行:

而不是:

submitFunction(object, function () {})

做:

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

您可以将其拆分为:

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

我这样使用 lodash _.pick:

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

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

项目现在没有功能,只有您的信息。

普通Javascript

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