我有我原来的对象如下。 所有我需要的是刚刚从现有的提取一些属性,并创建新的对象。
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对象。
如果只有几个属性要提取,然后简单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));
在undescorejs使用挑 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}
你想要删除的每个项目的位置
var data_new = _.map(data, function(item) {
return _.omit(item, 'location');
});
如果你想要的是删除阵列从对象的属性,你可以只delete
它们,同时以迭代forEach
:
var data_new = data;
data_new.forEach(function(obj){ delete obj.location; /* or any other */ });
$scope.data_new = [];
for(i in $scope.data){
$scope.data_new.push(
{ id: $scope.data[i].id, name: $scope.data[i].name }
)
}