33
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Có thể trùng lặp: JavaScript sử dụng biến làm tên đối tượng
Javascript use variable as object name
Làm cách nào để JS xử lý một chuỗi làm tham chiếu đến một đối tượng được xác định trước đó? Giản thể:
var myObject = new MyObject[];
var myString = "myObject";
var wantThisToWork = myString.myproperty;
Đã hỏi ngày 8 tháng 6 năm 2012 lúc 17:20Jun 8, 2012 at 17:20
4
Nếu biến nằm trong phạm vi toàn cầu, bạn có thể truy cập nó như một thuộc tính của đối tượng toàn cầu
var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
Tuy nhiên, nếu đó là một biến cục bộ, cách duy nhất là sử dụng
var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
0 [từ chối trách nhiệm]function [] {
var a = "hello world";
var varName = "a";
console.log[ this[varName] ]; // won't work
console.log[ eval[varName] ]; // Does work
}
Trừ khi bạn có thể đặt các biến động của mình vào một đối tượng và truy cập nó giống như một thuộc tính
function [] {
var scope = {
a: "hello world";
};
var varName = "a";
console.log[ scope[varName] ]; // works
}
Đã trả lời ngày 8 tháng 6 năm 2012 lúc 17:27Jun 8, 2012 at 17:27
Ruan Mendesruan MendesRuan Mendes
87.5K30 Huy hiệu vàng146 Huy hiệu bạc209 Huy hiệu đồng30 gold badges146 silver badges209 bronze badges
5
Bạn có thể sử dụng hàm
var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
0.eval[myString].myproperty
Tuy nhiên, cẩn thận với Eval, nếu đây là thứ mà người dùng đang nhập, nó sẽ thực hiện bất kỳ mã JavaScript nào!
Đã trả lời ngày 8 tháng 6 năm 2012 lúc 17:23Jun 8, 2012 at 17:23
Sachleensachleensachleen
30.2k8 Huy hiệu vàng75 Huy hiệu bạc72 Huy hiệu đồng8 gold badges75 silver badges72 bronze badges
2
Cách duy nhất, như dường như đối với tôi, sẽ là sử dụng Eval. Nhưng như họ nói, Eval là xấu xa - nhưng không phải trong môi trường được kiểm soát. Đây là cách có thể, nhưng tôi không khuyên bạn nên sử dụng Eval, trừ khi nó hoàn toàn cần thiết.
var myObject = new MyObject[];
var myString = "myObject";
var wantThisToWork = eval[myString].myproperty;
Đã trả lời ngày 8 tháng 6 năm 2012 lúc 17:22Jun 8, 2012 at 17:22
Parth Thakkarparth ThakkarParth Thakkar
5.3673 Huy hiệu vàng24 Huy hiệu bạc34 Huy hiệu đồng3 gold badges24 silver badges34 bronze badges
7
Sử dụng eval []eval[]
var myObject = {};
myObject.myproperty = "Hello";
var myString = "myObject";
var wantThisToWork = eval[myString].myproperty;
Đã trả lời ngày 8 tháng 6 năm 2012 lúc 17:30Jun 8, 2012 at 17:30
AnandanandAnand
14.1K7 Huy hiệu vàng31 Huy hiệu bạc44 Huy hiệu đồng7 gold badges31 silver badges44 bronze badges
7
Chào mừng bạn đến với một hướng dẫn ngắn về cách chuyển đổi một chuỗi thành một đối tượng trong JavaScript. Vâng, để có câu trả lời nhanh - Hàm JavaScript gốc duy nhất để chuyển đổi một chuỗi thành một đối tượng là
2. Ví dụ, var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
3. Để chuyển đổi chuỗi của các định dạng khác, nó phải được thực hiện thủ công.var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
Điều đó bao gồm những điều cơ bản, nhưng chúng ta hãy đi qua một vài ví dụ nữa trong hướng dẫn này - đọc tiếp!
Tôi đã bao gồm một tệp zip với tất cả các mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không phải sao chép mọi thứ, hoặc nếu bạn chỉ muốn đi thẳng vào.
Trượt nhanh
MỤC LỤC
Tải xuống & ghi chú
Thứ nhất, đây là liên kết tải xuống đến mã ví dụ như đã hứa.
Ghi chú nhanh
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với toàn bộ thế giới, nếu bạn cần câu trả lời khẩn cấp, vui lòng kiểm tra danh sách các trang web của tôi để nhận trợ giúp lập trình.
Mã hóa ví dụ Tải xuống
Nhấn vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên đó hoặc sử dụng nó trong dự án của riêng bạn.
Được rồi, bây giờ chúng ta hãy đi vào các cách khác nhau mà chúng ta có thể tạo các chức năng [hoặc quy trình] để biến một chuỗi thành một đối tượng.
1] Json Parse
1-json.js
// [A] JSON ENCODED STRING
var thestring = '{"Name":"Jon Doe","Email":"","Address":"123 Doe Street"}';
// [B] PARSE JSON
var theobj = JSON.parse[thestring];
/* Name: "Jon Doe",
* Email: "",
* Address: "123 Doe Street"
*/
console.log[theobj];
Đối với những người mới bắt đầu chưa nghe về nó - JSON là viết tắt của ký hiệu đối tượng JavaScript. Đơn giản chỉ cần đặt, biến một mảng hoặc đối tượng trong một chuỗi.
var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
4 sẽ biến một đối tượng thành một chuỗi được mã hóa JSON, sau đó chúng tôi sử dụng hàm var a = "hello world";
var varName = "a";
console.log[ window[varName] ]; // outputs hello world
console.log[ this[varName] ]; // also works [this === window] in this case
5 để biến nó trở lại thành một đối tượng.2] Hướng dẫn sử dụng vòng lặp
2-for.js
[A] CSV STRING
var thestring = "Name,Joe Doe,Email,,Address,234 Doe Street";
// [B] MANUAL PROCESS AND LOOP
var temp = thestring.split[","],
theobj = {};
for [let i=0; i