繁体   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