我正在創建一個解釋器,讀取
variable1: 2
variable2: 400
variable3: 31
從一個文本檔案,并在運行時初始化變數。使用 eval() 和正則運算式
class Rules{
getSegmentArgs_string(sgmnt, scope)
{
let argarray = new Array;
let vardeclaration;
for(let i=0; i<this.rules[sgmnt].length; i )
{
let regexp = /(\w ): ([0-9\.] )/g;
for (const match of this.rules[sgmnt][i].matchAll(regexp)) {
vardeclaration = (scope match[1].toString() " = " match[2].toString() ";");
argarray[i] = vardeclaration;
}
}
return argarray;
}
setSegment(sgmnt)
{
this.segment = sgmnt;
}
init()
{
this.defaultvars = this.getSegmentArgs_string(this.segment,"this.")
for(let i=0; i<this.defaultvars.length; i )
{
eval(this.defaultvars[i]);
}
delete(this.rules);
delete(this.defaultvars);
delete(this.segment);
}
constructor() {
this.rules = this.dump();
}
}
let rules = new Rules;
rules.setSegment(3);
rules.init();
但是,我無法理解如何在轉儲每個變數的名稱及其值的 for 回圈中訪問這些初始化的變數
for (const variables in rules)
{
console.log({variales});
console.log({variables}.value);
}
我能夠在做的時候訪問價值
console.log(rules.variables1,rules.variables2,rules.variables3)
但由于任務的性質,我需要遍歷所有變數而不用代碼命名它們。
uj5u.com熱心網友回復:
for...in為您提供物件屬性的鍵。您必須使用密鑰訪問值
for (const key in rules)
{
console.log(key, rules[key]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490222.html
標籤:javascript
