use*_*338 1 javascript typescript
我有一个数组
fruit={sweet:'apple',dry:{f1:'raisin',f2:'almond'},sour:'strawberry'}
Run Code Online (Sandbox Code Playgroud)
它包含简单和嵌套的对象作为项目
我可以使用括号表示法引用 f1fruit[0]["dry"]["f1"]
但我有一个具有值的字符串变量var str="dry.f1"
运行时更改的值"str"可能是"sweet"或"dry.f1"或"sour"
"str"
如果 str 的值是 "sweet"或"sour" fruit[str]工作正常,我如何引用数组项
我们可以使用获取 f1 的值fruit[0].dry.f1,但我需要使用变量 str 访问它
您可以使用split和reduce:
var fruit={sweet:'apple',dry:{f1:'raisin',f2:'almond'},sour:'strawberry'};
var str1 = "dry.f1";
var str2 = "sweet";
var example1 = str1.split('.').reduce((a, b) => a[b], fruit);
var example2 = str2.split('.').reduce((a, b) => a[b], fruit);
console.log(example1);
console.log(example2);Run Code Online (Sandbox Code Playgroud)
这会将每个点上的字符串分割成一个数组,然后通过迭代字符串中的值来减少水果数组,将它们应用于水果数组,以获得您正在寻找的值。
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |