gpt4 book ai didi

javascript - 通过字符串从对象中提取数据

转载 作者:行者123 更新时间:2023-11-30 09:20:07 24 4
gpt4 key购买 nike

我有这个对象:

var object =  {item : {id : "51524512541"}};

一些服务正在传递这个字符串:

var str = "item.id";

我想提取 ID (51524512541)。

分割。(点)是一种选择,但object可能很深。

也许 eval with try catch 能以某种方式帮助这里?

最佳答案

您可以为此使用 reduce - 遍历索引数组并深入研究对象:

str.split('.').reduce((a, i) => a[i], object)

解释:

首先将str拆分成数组,形成:

['item', 'id'].reduce((a, i) => a[i], object)

所以你有索引数组,你想“访问”。现在你在上面调用 reduce - 它一个一个地获取索引并对每个索引(i)和上一次调用的结果(a) 并返回 a[i],因此它“潜入”对象的更深一层。第一次调用还没有可用的“先前结果”,因此它以对象作为初始值。

所以真正的调用是这样的:

i = 'item', a = {"item":{"id":123}} -> result a[i] is {"id":123}
i = 'id', a = {"id":123} -> result a[i] is 123

关于javascript - 通过字符串从对象中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com