Hướng dẫn convert string to object name javascript - chuyển đổi chuỗi thành tên đối tượng javascript

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à

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
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.

Đ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

Bài Viết Liên Quan

Chủ Đề