返回没有特定值的对象

时间:2014-01-29 18:09:09

标签: javascript underscore.js

我有一个像这样的对象:

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

现在我想在没有私有部分的情况下返回此对象!我无法拼接它,因为它被使用,只是在其他地方不需要。由于某些原因,我无法找到解决方案。

我可以使用Underscore.js并且正在使用node.js

2 个答案:

答案 0 :(得分:5)

这正是omit的用途:

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

答案 1 :(得分: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);
}