2014-01-29 3 views
2

У меня есть объект, как:возвращает объект без определенного значения

Obj = { 
    foo: false, 
    bar: true, 
    private: { 
    something: 'else' 
    } 
} 

теперь я хочу, чтобы вернуть этот объект без закрытой части! Я не могу объединить его, потому что он используется, просто не нужен где-то еще. По какой-то причине я не могу найти решение.

я могу использовать Underscore.js и тружусь на Node.js

ответ

5

Это именно то, что omit для:

var public = _.omit(Obj, 'private'); // {foo: false, bar: true} 
+0

безупречный! Не знаю, почему я пропустил это! –

+0

Вы также знаете быстрый способ использовать это Obj был элементом массива? Возврат mulitple Objs без частного –

+0

Возможно, просто используйте 'map',' arr.map (function (x) {return _.omit (x, 'private');}) ' –

2

Чистый JavaScript решение:

var copy = {}; 
for (var k in Obj) copy[k] = Obj[k]; 
delete copy.private; 

С массива «Obj» под названием «array»:

var i = 0, 
    arrayCopy = [], 
    itemCopy, 
    item; 

while (i < array.length) { 
    item = array[i++]; 
    itemCopy = {}; 
    for (var k in item) itemCopy[k] = item[k]; 
    delete itemCopy.private; 
    arrayCopy.push(itemCopy); 
} 
Смежные вопросы