簡體   English   中英

如何在javascript中將字符串轉換為對象的字段名稱

[英]How to convert string as object's field name in javascript

我有一個像以下的js對象:

obj = {
  name: 'js',
  age: 20
};

現在我想訪問obj的name字段,但我只能獲得字符串'name',所以如何將'name'轉換為obj的字段名,然后獲得像obj.name這樣的結果。

先感謝您。

您可以使用索引ie訪問javascript對象的屬性

var obj = {
  name: 'js',
  age: 20
};

var isSame = (obj["name"] == obj.name)
alert(isSame);

var nameIndex = "name"; // Now you can use nameIndex as an indexor of obj to get the value of property name.
isSame = (obj[nameIndex] == obj.name)

檢查示例@: http//www.jsfiddle.net/W8EAr/

在Javascript中, obj.name等同於obj['name'] ,它添加了必要的間接。

在你的例子中:

var fieldName = 'name'
var obj = {
  name: 'js',
  age: 20
};
var value = obj[fieldName]; // 'js'

通過變量訪問對象的值非常簡單,使用方括號:

var property = 'name';
var obj = {name: 'js'};
alert(obj[property]); // pops 'js'

由於對象是javascript中的關聯數組,因此您可以將“name”字段作為obj['name']obj[fieldName] ,其中fieldName = 'name'

根本不相關,但對於任何試圖從字符串變量定義對象的字段名稱的人,您可以嘗試:

 const field = 'asdf' const obj = {[field]: 123} document.body.innerHTML = obj.asdf 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM