2016-11-06 75 views
0

我想从javascript对象数组中删除一些属性。这是对象的数组。从javascript对象数组中删除一些属性

obj_array = [{ 
     "DATA_ID": 1, 
     "DATA_NAME": "Jim", 
     "DATA_BB_TYP": 2, 
     "DATA_MAC": "5474", 
    }, 
    { 
     "DATA_ID": 3, 
     "DATA_NAME": "Fro", 
     "DATA_BB_TYP": 33, 
     "DATA_MAC": "8e30", 
    }, 
    { 
     "DATA_ID": 2, 
     "DATA_NAME": "Jimb", 
     "DATA_BB_TYP": 2, 
     "DATA_MAC": "45e8", 
    }, 
    { 
     "DATA_ID": 4, 
     "DATA_NAME": "Kht1", 
     "DATA_BB_TYP": 35, 
     "DATA_MAC": "58d0", 
    }, 
    { 
     "DATA_ID": 6, 
     "DATA_NAME": "Sens", 
     "DATA_BB_TYP": 34, 
     "DATA_MAC": "d004", 
    } 
] 

我有这个字符串数组,指定要删除的属性。

var str_array_criteria = ["DATA_BB_TYP", "DATA_MAC"]; 

移除后,对象数组看起来像这样;

obj_array_removed = [{ 
     "DATA_ID": 1, 
     "DATA_NAME": "Jim",   
    }, 
    { 
     "DATA_ID": 3, 
     "DATA_NAME": "Fro", 
    }, 
    { 
     "DATA_ID": 2, 
     "DATA_NAME": "Jimb", 
    }, 
    { 
     "DATA_ID": 4, 
     "DATA_NAME": "Kht1", 
    }, 
    { 
     "DATA_ID": 6, 
     "DATA_NAME": "Sens", 
    } 
] 

我正在使用node.js v6。

回答

2

在这里你去,

var obj_array = [{ 
 
     "DATA_ID": 1, 
 
     "DATA_NAME": "Jim", 
 
     "DATA_BB_TYP": 2, 
 
     "DATA_MAC": "5474", 
 
    }, 
 
    { 
 
     "DATA_ID": 3, 
 
     "DATA_NAME": "Fro", 
 
     "DATA_BB_TYP": 33, 
 
     "DATA_MAC": "8e30", 
 
    }, 
 
    { 
 
     "DATA_ID": 2, 
 
     "DATA_NAME": "Jimb", 
 
     "DATA_BB_TYP": 2, 
 
     "DATA_MAC": "45e8", 
 
    }, 
 
    { 
 
     "DATA_ID": 4, 
 
     "DATA_NAME": "Kht1", 
 
     "DATA_BB_TYP": 35, 
 
     "DATA_MAC": "58d0", 
 
    }, 
 
    { 
 
     "DATA_ID": 6, 
 
     "DATA_NAME": "Sens", 
 
     "DATA_BB_TYP": 34, 
 
     "DATA_MAC": "d004", 
 
    } 
 
]; 
 

 
    var str_array_criteria = ["DATA_BB_TYP", "DATA_MAC"]; 
 

 
    var new_obj_array = obj_array.map(function(obj) { 
 
     str_array_criteria.forEach(function(prop) { 
 
     delete obj[prop]; 
 
     }); 
 
     
 
     return obj; 
 
    }); 
 

 
    console.log(new_obj_array);

+0

惊人。您可以回答的速度以及代码的简洁性。我应该了解地图,过滤这些日子之一。不容易习惯他们。 – user781486

+1

@ user91579631,是的,他们很好玩的学习队友:-) – Aruna

+0

是你的代码功能编程?它看起来如此不同,但又精彩又短小。我是否必须学习FP来理解你的代码? – user781486