Есть ли способ, чтобы использовать различные ключи в JavaScript литерал объекта?

голоса
53

У меня есть код, как это.

var key = anything;   
var object = {   
    key: key attribute  
};

Я хочу знать , если есть способ заменить , что keyс «ничего».

как

var object = {  
    anything: key attribute     
};
Задан 19/05/2009 в 12:23
источник пользователем
На других языках...                            


8 ответов

голоса
88

Да. Вы можете использовать:

var key = "anything";
var json = { };
json[key] = "key attribute";

Или просто использовать второй метод, если у вас есть значения под рукой при написании программы.

Ответил 19/05/2009 в 12:27
источник пользователем

голоса
-2

Ну, не «прямой» способ сделать это ...

но это должно сделать это:

json[key] = json.key;
json.key = undefined;

Его немного сложно, но эй, это работает!

Ответил 19/05/2009 в 12:30
источник пользователем

голоса
8

Это должно сделать трюк:

var key = "anything";

var json = {};

json[key] = "key attribute";
Ответил 19/05/2009 в 12:31
источник пользователем

голоса
91

В ES6 использовать вычисляемые имена свойств .

const key = "anything";   

const object = {   
    [key]: "key attribute"
//  ^^^^^  COMPUTED PROPERTY NAME
};

Обратите внимание на квадратные скобки key. Вы действительно можете указать любое выражение в квадратных скобках, а не только переменную.

Ответил 16/03/2015 в 10:48
источник пользователем

голоса
-1

Затворы отлично подходит для этого.

function keyValue(key){
  return function(value){
    var object = {};
    object[key] = value;
    return object;
  }
}

var key = keyValue(key);
key(value);
Ответил 06/08/2015 в 16:52
источник пользователем

голоса
2

Решение:

var key = "anything";

var json = {};

json[key] = "key attribute";
Ответил 25/02/2016 в 17:45
источник пользователем

голоса
-1

В последнее время было необходимо решение , как установить куки прохождения ключевых значений динамического JSon. Используя https://github.com/js-cookie/js-cookie#json , это можно сделать легко. Требуется для хранения каждого выбранного значения параметра от пользователя в куки, так что не теряется в случае вкладки или браузера выключая.

var json = { 
        option_values : {}
    };
    $('option:selected').each(function(index, el) {
        var option = $(this);
        var optionText = option.text();
        var key = 'option_' + index;
        json.option_values[key] = optionText;
        Cookies.set('option_values', json, { expires: 7 } );
    }); 

Тогда вы можете получить каждое значение ключа печенья на каждой загрузке страницы с помощью

Cookies.getJSON('option_values');
Ответил 11/01/2017 в 09:24
источник пользователем

голоса
0

На современных JavaScript (ECMAScript 6) вы можете sorround переменную с квадратными скобками:

var key = "anything";

var json = {
    [key]: "key attribute"
};
Ответил 17/05/2018 в 12:52
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more