2016-03-04 4 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 петле (с той разницей, что для в цикл перебирает свойства в цепочке прототипов).

Если элементы массива имеют те же свойства, то это будет работать:

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>');

Смежные вопросы