Angularjs:如何过滤对象数组中的选定字段

时间:2014-11-17 09:34:09

标签: angularjs

假设我有一个像这样的对象数组

peoples = [{name:"Joe",age:21,sex:'M'},
{name:"Smith",age:18,sex:'M'},{name:"Sally",age:25,sex:'F'}];

其中一些字段无关紧要,因此我需要从上述所有对象中删除属性年龄和性别。

这是所需的输出。

 [{name:"Joe"},{name:"Smith"},{name:"Sally"}];

更新  如果我可以像$ filter一样使用angularjs内置服务,那就太好了。

2 个答案:

答案 0 :(得分:2)

我没有看到删除不必要的对象的必要性,因为您只能访问所需的字段。否则,您可以从您创建的阵列中创建一个新阵列,从而消除您不想要的内容。

var peoples = [{name:"Joe",age:21,sex:'M'},{name:"Smith",age:18,sex:'M'},{name:"Sally",age:25,sex:'F'}];
var names = [];
peoples.forEach(function(entry) {
    names.push({name:entry.name});
});
console.log("New Names:",names); //[{name:"Joe"},{name:"Smith"},{name:"Sally"}];

答案 1 :(得分:1)

只是做:

   for( var i = 0; i < peoples.length; ++i ) {
             delete peoples[i].age;
             delete peoples[i].sex;
   }

delete是为此

创建的关键字