2016-04-19 5 views
1

В моем приложении я использую angular.js.Как удалить функции из объекта javascript

Мне нужно отправить (через запрос 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); 

Спасибо,
Jorge

+0

Похоже, вы помещаете свои данные в объект '$ resource' или' $ http', попробовали ли вы просто поместить свои данные на новый объект, например: 'var item = {}; item.a = 1; 'etc –

+0

У меня много свойств, это всего лишь пример, у него больше, 20 я верю, и я не хочу так ходить 20 раз: D. – jBaumann

+1

Я бы добавил ваше решение в качестве фактического ответа, затем отметьте его правильным для будущих пользователей SO – Chris

ответ

0

Я использовал lodash_.pick вроде этого:

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

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

Items теперь свободна от функций, только ваши данные.

2

Они наследуют от Object, не принадлежит item.

Если вы хотите перебрать свою собственность, используйте цикл for ... in.

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

Он объединяет все функции, свойства и все объекты вокруг объекта. Я, наконец, пошел с ** lodash ** '_.pick', но спасибо в любом случае. Я кое-что узнал. – jBaumann

1

Это не идеальное решение, но оно должно работать:

Вместо:

submitFunction(object, function() {}) 

сделать:

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

его можно разделить на:

var cleanObject = JSON.parse(angular.toJson(object)) 
submitFunction(cleanObject, function() {}) 
Смежные вопросы