使用filter()删除属性键

时间:2016-05-02 08:21:25

标签: javascript

var a = [{'id':1,'name':'James','age':11}];

a = a.filter(function( obj,i ) {
            //return obj != 'age';
          });

filter会创建一个新数组,但如何拼接age属性键?没有使用jquery,在这种情况下不能使用$ .grep。并且不会使用删除,因为它并没有真正删除密钥,而是留下一个空插槽。

3 个答案:

答案 0 :(得分:1)

使用Array#forEachdelete运算符删除key



var a = [{
  'id': 1,
  'name': 'James',
  'age': 11
}, {
  'id': 2,
  'name': 'James2'
}];

a.forEach(function(obj, i) {
  obj['age'] && delete obj['age'];
});
console.log(a);




答案 1 :(得分:0)

请试试这个:

a = [{'id':1,'name':'James','age':11}];
b = a.map(function(v, i) {
    var copy = {};
    for(key in v) {
        if(key != 'age') {
            copy[key] = v[key];
        }
    }
    return copy;
});

答案 2 :(得分:-2)

var a = [{'id':1,'name':'James','age':11}];

a = a.filter(function( obj,i ) {
    if(obj.hasOwnProperty('age')) {
        delete obj.age
        return obj;
    }
});