这是我目前正在执行的操作,以将vars
数组中的值与newaction
内的对象键进行匹配。
Object.keys(newaction).forEach((e) => {
try {
var newVal = newaction[e].replace(regex, (_match, group1) => vars[group1]);
newaction[e] = newVal;
} catch (err) {
console.log(err);
}
});
因此newaction
的每个匹配属性将被具有匹配关键字的vars
中的值替换。
[我现在想做的是将newaction
中的值替换为vars中的匹配值,但是其中vars中的值是一个数组。
所以说vars看起来像这样:
[{
"name": "test",
"value": ["HP": '35',
"Atk": '55',
"Def": '30',
"SpA": '50',
"SpD": '40',
"Spe": '90',]
}]
如果我现在想以newvalue[e]
的形式将其匹配为test[HP]
以获取值'35',则原始正则表达式将无法正常工作。
将vars
更改为键是名称的对象,值是具有key:value对的对象。然后,您可以将这两个组用作主对象和嵌套对象的索引。
vars = {
"test": {
"HP": '35',
"Atk": '55',
"Def": '30',
"SpA": '50',
"SpD": '40',
"Spe": '90'
}
};
const regex = /(\w+)\[(\w+)\]/;
Object.keys(newaction).forEach((e) => {
try {
var newVal = newaction[e].replace(regex, (_match, group1, group2) => vars[group1][group2]);
newaction[e] = newVal;
} catch (err) {
console.log(err);
}
});