2009-05-19 44 views

Trả lời

86

Yes. Bạn có thể sử dụng:

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

Hoặc chỉ cần sử dụng phương pháp thứ hai nếu bạn có giá trị khi viết chương trình.

-2

Vâng, có không phải là một cách "trực tiếp" để làm điều này ...

nhưng điều này nên làm điều đó:

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

của nó một chút khó khăn, nhưng hey, nó hoạt động!

8

này nên làm như lừa:

var key = "anything"; 

var json = {}; 

json[key] = "key attribute"; 
+0

Nhưng ông muốn làm điều này trong bối cảnh của một đối tượng chữ. –

86

Trong ES6, sử dụng computed property names.

const key = "anything"; 

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

Lưu ý các dấu ngoặc vuông xung quanh key. Bạn thực sự có thể chỉ định bất kỳ biểu thức nào trong các dấu ngoặc vuông, không chỉ là một biến.

+8

Đây phải là câu trả lời mới được chấp nhận – Phoenix

+2

hoạt động trên Chrome. câu trả lời đơn giản và tốt nhất (y) –

-1

Đóng cửa hoạt động tốt cho việc này.

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

var key = keyValue(key); 
key(value); 
+0

Đóng cửa chỉ đơn thuần là cơ chế được sử dụng ở đây. Khái niệm này là HOF. –

+0

HOF = Hàm bậc cao hơn. – Rick

2

Giải pháp:

var key = "anything"; 

var json = {}; 

json[key] = "key attribute"; 
+0

Vui lòng giải thích giải pháp của bạn. –

+1

@MartinZabel Nó hầu như không cần giải thích. –

-1

Gần đây cần một giải pháp làm thế nào để thiết lập cookie đi qua các json động giá trị then chốt. Sử dụng https://github.com/js-cookie/js-cookie#json, có thể thực hiện dễ dàng. Muốn lưu trữ từng giá trị tùy chọn được chọn của người dùng trong cookie, do đó, nó không bị mất trong trường hợp tab hoặc trình duyệt tắt.

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

Sau đó, bạn có thể lấy Mỗi cái bánh giá trị quan trọng trên mỗi tải trang sử dụng

Cookies.getJSON('option_values'); 
Các vấn đề liên quan