我的原始对象如下。我只需要从现有属性中提取几个属性并创建新对象。
var data = [{
id: 3,
name: Axe,
location: alkt
}, {
id: 5,
name: Roy,
location: grelad
}]
我需要输出,
var data_new = [{
id: 3,
name: Axe
}, {
id: 5,
name: Roy,
}]
如何在下划线js或任何简单方法中实现。可能是一个大的JSON对象。
答案 0 :(得分:4)
如果您想要提取的属性很少,那么简单Array.prototype.map将正常工作:
var data = [{
id: 3,
name: 'Axe',
location: 'alkt'
}, {
id: 5,
name: 'Roy',
location: 'grelad'
}]
var result = data.map(function(obj) {
return {
id: obj.id,
name: obj.name
};
});
alert(JSON.stringify(result, null, 4));
答案 1 :(得分:2)
在不受约束的http://underscorejs.org/#pick中使用选择 或省略 http://underscorejs.org/#omit
_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age');
=> {name: 'moe', age: 50}
_.pick({name: 'moe', age: 50, userid: 'moe1'}, function(value, key, object) {
return _.isNumber(value);
});
=> {age: 50}
答案 2 :(得分:1)
您要删除每个项目的位置
var data_new = _.map(data, function(item) {
return _.omit(item, 'location');
});
答案 3 :(得分:0)
如果你想要的只是从数组中的对象中删除属性,那么在使用delete
进行迭代时,你可以只forEach
:
var data_new = data;
data_new.forEach(function(obj){ delete obj.location; /* or any other */ });
答案 4 :(得分:0)
obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)})