Tôi có mã như thế này.
var key = "anything";
var object = {
key: "key attribute"
};
Tôi muốn biết nếu có một cách để thay thế điều đó keybằng "bất cứ điều gì".
giống
var object = {
"anything": "key attribute"
};
Tôi có mã như thế này.
var key = "anything";
var object = {
key: "key attribute"
};
Tôi muốn biết nếu có một cách để thay thế điều đó keybằng "bất cứ điều gì".
giống
var object = {
"anything": "key attribute"
};
Câu trả lời:
Trong ES6, sử dụng tên thuộc tính được tính toán .
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 dấu ngoặc vuông, không chỉ một biến.
Đúng. Bạn có thể dùng:
var key = "anything";
var json = { };
json[key] = "key attribute";
Hoặc đơn giản là sử dụng phương pháp thứ hai nếu bạn có sẵn các giá trị khi viết chương trình.
Trên Javascript hiện đại (ECMAScript 6), bạn có thể sắp xếp biến bằng dấu ngoặc vuông:
var key = "anything";
var json = {
[key]: "key attribute"
};
Giải pháp:
var key = "anything";
var json = {};
json[key] = "key attribute";
Gần đây, cần một giải pháp cách đặt cookie chuyển các giá trị khóa json động. Sử dụng https://github.com/js-cookie/js-cookie#json , bạn có thể thực hiện dễ dàng. Muốn lưu trữ từng giá trị tùy chọn đã chọn của người dùng trong cookie, vì vậy 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ể truy xuất từng giá trị khóa cookie trên mỗi lần tải trang bằng cách sử dụng
Cookies.getJSON('option_values');
Chà, không có cách nào "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;
Nó hơi phức tạp, nhưng này, nó hoạt động!