[英]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 承诺之类的。
有没有办法只得到a
, b
和c
? 也许用 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.