Tôi đang tìm giải pháp tạo khóa đối tượng (được viết đúng cách?) Động.Tự động tạo khóa đối tượng trong IE 11 (Số nhận dạng dự kiến, chuỗi hoặc số, không phải là dấu phẩy)
dụ Arbitrary, nhưng hoạt động này trong chrome và firefox
var weeks = {}
for(var i = 0; i < 5; i++){
$.extend(weeks, {["week" + i] : (i * 2)}
}
//weeks = {"week0":0,"week1":2,"week2":4,"week3":6,"week4":8}
Hoặc ví dụ tùy ý thay thế
var object = {
["a" + 50]: "value"
}
Vấn đề dường như được bắt nguồn từ các nhà điều hành []
, nhưng tôi không hiểu tại sao hoặc tại sao vấn đề này chỉ xảy ra trong IE. Tôi đã không thử nghiệm trong các phiên bản trước để IE11, nhưng tôi sẽ giả định vấn đề sẽ tồn tại ở đó là tốt.
Vì vấn đề dường như với chính nhà điều hành []
, tạo khóa của tôi trong một biến và sau đó đẩy biến đó vào [] của tôi sẽ không làm bất cứ điều gì để khắc phục sự cố, vì vậy tôi dường như là cả hai ý tưởng và từ khóa cho google.
Vậy có cách nào để tự động tạo khóa đối tượng trong IE không?
IE11 không hỗ trợ nhiều (nếu có) cú pháp ES6 mới. Hãy nhớ rằng, đó là Internet Explorer, không phải là một trình duyệt web hiện đại. –
Mở rộng trên nhận xét @RocketHazmat: kiểm tra "đối tượng ngữ pháp mở rộng -> thuộc tính được tính toán" trong [Bảng tương thích ECMAScript6] (https://kangax.github.io/compat-table/es6/) để kiểm tra nơi bạn có thể sử dụng cú pháp này . – apokryfos
Tại sao sử dụng mở rộng? Chỉ cần sử dụng ký hiệu ngoặc vuông và gán trực tiếp thuộc tính? 'weeks [" week "+ i] = i * 2;' – evolutionxbox