2016-03-04 123 views
0

如何从javascript对象创建不同属性的列表?Javascript对象属性清单

下面是一个简单的字符串,是动态创建这个字符串(我不知道是什么属性和值可能含有。

[{ 
    "ID": 331, 
    "DynamicString": "", 
    "MyDate": "", 
    "TestCheckbox": "false", 
    "TestTA": "", 
    "BusinessCategory": "Regulatory", 
    "PriorityGroup": "Must Do" 
}, { 
    "ID": 335, 
    "DynamicString": "hjkhjkhjk", 
    "MyDate": "17/02/2016", 
    "TestCheckbox": "true", 
    "TestTA": "hjkhjkhjk", 
    "BusinessCategory": "Regulatory", 
    "PriorityGroup": "Should Do" 
}, { 
    "ID": 336, 
    "DynamicString": "What about this", 
    "MyDate": "26/05/2016", 
    "TestCheckbox": "false", 
    "TestTA": "What about this", 
    "BusinessCategory": "Machinery of Government", 
    "PriorityGroup": "Should Do" 
}] 

我想输出是

“ ID,DynamicString,MyDate,TestCheckBox,TestTA,BusinessCategory,PriorityGroup

我将数据传递给一个对象,但我不确定循环并创建一个不同的属性列表的最佳方式。

+0

已每个项目相同的属性? –

回答

0

试试这个

var arr = [{"ID":331,"DynamicString":"","MyDate":"","TestCheckbox":"false","TestTA":"","BusinessCategory":"Regulatory","PriorityGroup":"Must Do"},{"ID":335,"DynamicString":"hjkhjkhjk","MyDate":"17/02/2016","TestCheckbox":"true","TestTA":"hjkhjkhjk","BusinessCategory":"Regulatory","PriorityGroup":"Should Do"},{"ID":336,"DynamicString":"What about this","MyDate":"26/05/2016","TestCheckbox":"false","TestTA":"What about this","BusinessCategory":"Machinery of Government","PriorityGroup":"Should Do"}]; 
function arrayUnique(array) 
{ 
    var a = array.concat(); 
    for(var i=0; i<a.length; ++i) 
    { 
     for(var j=i+1; j<a.length; ++j) 
     { 
      if(a[i] === a[j]) 
       a.splice(j--, 1); 
     } 
    } 
    return a; 
} 
var output = []; 
arr.forEach(function(value){ output = output.concat(Object.keys(value)) });//concatenate all the items 
console.log (arrayUnique(output)); //print the unique elements 
0

使用Object.keys()

Object.keys()方法返回给定的对象自身的枚举的属性的阵列,以相同的顺序作为由for ... in环路(不同之处在于一个用于-in循环枚举属性提供在原型链中)。

如果数组项具有相同的属性,那么这将工作:

var properties = Object.keys(Array[0]); 

如果不是这将迭代对所有对象及其键帮助。

var array = [{ "ID": 331, "DynamicString": "", "MyDate": "", "TestCheckbox": "false", "TestTA": "", "BusinessCategory": "Regulatory", "PriorityGroup": "Must Do" }, { "ID": 335, "DynamicString": "hjkhjkhjk", "MyDate": "17/02/2016", "TestCheckbox": "true", "TestTA": "hjkhjkhjk", "BusinessCategory": "Regulatory", "PriorityGroup": "Should Do" }, { "ID": 336, "DynamicString": "What about this", "MyDate": "26/05/2016", "TestCheckbox": "false", "TestTA": "What about this", "BusinessCategory": "Machinery of Government", "PriorityGroup": "Should Do" }], 
 
    properties = function (array) { 
 
     var o = {}; 
 
     array.forEach(function (a) { 
 
      Object.keys(a).forEach(function (k) { 
 
       o[k] = true; 
 
      }); 
 
     }); 
 
     return Object.keys(o); 
 
    }(array); 
 

 
document.write('<pre>' + JSON.stringify(Object.keys(array[0]), 0, 4) + '</pre>'); 
 
document.write('<pre>' + JSON.stringify(properties, 0, 4) + '</pre>');