首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从具有字符串形式的键和索引的对象中检索值:'array[0].key‘

从具有字符串形式的键和索引的对象中检索值:'array[0].key‘
EN

Stack Overflow用户
提问于 2018-10-15 01:29:03
回答 1查看 26关注 0票数 0

我正在为javascript中的表单使用一些特定的库。在这个库中,如果我有:

代码语言:javascript
复制
{
    "id": 1,
    "order": 0,
    "title": "A title",
},

我可以这样做:

代码语言:javascript
复制
const field = 'order';
form.getState().values[field]

然后我会得到title的值。

现在假设我有这样的数据:

代码语言:javascript
复制
{
    "id": 1,
    "order": 0,
    "title": "A title",
    "Tags": [
        {
            "id": 1,
            "name": "Tag one",
        },
        {
            "id": 2,
            "name": "Tag two",
        }
    ]
},

我还可以访问一个字符串,该字符串包含标记字段的名称、数组的索引和要检索的字段。但我将所有这些都放在一个字符串中:

代码语言:javascript
复制
Tags[0].name

如果我这样做了:

代码语言:javascript
复制
const field = 'Tags[0].name';
form.getState().values[field]

它将返回undefined,因为它将尝试在对象中查找键Tags[0].name。那么:如何从Tags数组中的特定索引检索name属性,并将Tags[0].name作为字符串?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-15 01:37:48

一种有点讨厌但快速有效的方法是使用eval:

代码语言:javascript
复制
const field = 'Tags[0].name';
let stateValues = form.getState().values;
let tagName = eval(`stateValues.${ field }`)

另一种方法可能是使用regexp拆分和解析字段路径,然后按属性遍历对象属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52805246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档