2014-01-13 2 views
1

Мои данные: У меня есть массив объектов:Включить ли объекты Javascript ключи, содержащие пробелы?

var totalsArray = [ 
    { Applications: 1, Computing Servers: 0, Contracts: 0, Country: "United States" }, 
    { Applications: 1, Computing Servers: 0, Contracts: 0, Country: "Italy" }, 
    { Applications: 1, Computing Servers: 0, Contracts: 0, Country: "United States" }, 
    { Applications: 1, Computing Servers: 0, Contracts: 0, Country: "Spain" } 
]; 

Мой код: Затем я пытаюсь извлечь ключи, используя следующий код:

var objectKeys = d3.keys(totalsArray[0]).filter(function(key) { return key;}); 

Однако, я получаю ошибка из-за пробела в ключе с именем «Вычислительные серверы».

Мой вопрос: Есть ли способ правильно создать и сохранить «пробел» в имени/строке ключа?

Благодарим за любую помощь, которую вы можете предложить.

+1

использования [ «массив нотации»] – dandavis

+0

вам нужно stringify – Dalorzo

+0

IIRC: вы также должны поставить кавычки вокруг СОБСТВЕННОСТИ y, когда вы инициализируете объект. –

ответ

7

Да, имя свойства может быть любой строкой (все значения привязаны к строкам, прежде чем они используются внутри).

Это может быть сделано с помощью кавычки (двойной или одинарной) вокруг имен в литералах:

{ Applications: 1, "Computing Servers": 0, .. }, 

Подобно тому, как это можно сделать с помощью синтаксиса obj[prop] (где prop является любого выражения, которое может быть преобразовано в разумном строковое значение):

obj["Computing Servers"] = 42; 
+1

Этот метод также полезен для зарезервированных ключевых слов, таких как «if» или «function» или «continue». – hugomg

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