【发布时间】:2020-10-10 06:45:39
【问题描述】:
我有一个键数组
例如:var keyarray = [k1, k2, k3, ... ,kn];
设 o 为对象;
我需要检查 o[k1][k2][k3]...[kn] 的值
我尝试了以下方法:
方法一:
- 将 keyArray 的每个元素转换为数组,以便得到以下输出 var keyarray = [[k1], [k2], [k3], .... ,[kn]]
- 然后执行keyarray.join(''); --> 这会产生一个字符串,例如 k1k2k3...kn
方法二:
- 将 keyArray 的每个元素转换为数组,以便得到以下输出 var keyarray = [[k1], [k2], [k3], .... ,[kn]]
- 循环遍历 keyarray 并将每个值附加到一个字符串中,这样我就得到了以下输出 s = "[k1][k2][k3]...[kn]"
- 然后尝试 o[s] --> 返回未定义。
寻找任何建议。
编辑:添加实时示例以便正确理解。
我有如下 JSON 对象
obj = {
"history": [
{
"at": "someval",
"by": "someval"
}.
{
"at": "someval",
"by": "someval"
}
]
}
对于以上内容,我将有一个如下所示的 keyArray
var keyArray = ["history", "0", "at"],
要访问它,我必须动态生成如下所示的对象
obj[history][0][at]
希望这会有所帮助。
【问题讨论】:
-
为什么要将键包装在数组中?为什么要把他们联合起来?
-
从 csv 导出中获取键,该导出以 history.0.at 等格式提供键。所以我将字符串拆分为一个数组,然后尝试访问该值。
-
所以你已经有了路径。关于该设置有多个问题:通过路径访问属性
标签: javascript node.js arrays object