【问题标题】:Array element as Json field [duplicate]数组元素作为Json字段[重复]
【发布时间】:2018-04-11 14:52:26
【问题描述】:

基本上我有一个 json 说.. collectionData = {'customerName':'Ashish','phone':'1234567'} 现在我有一个包含 json 字段名的数组,例如..

array = ['customerName','phone'];

现在我要执行这个操作:

for (let i = 0; i < array.length; i++) {
    console.log(collectionData.array[i]);
}

为什么这段代码给了我错误?谢谢提前

【问题讨论】:

  • 改用括号表示法 (console.log(collectionData[array[i]]);)
  • 嘿,感谢您的快速响应.. 成功了!!!
  • @raina77ow。 OP 在问为什么这段代码给了我错误?我们不应该考虑回答那部分吗?

标签: javascript arrays firebase


【解决方案1】:

您必须使用括号表示法访问它们。因为当你使用. dot notation 这样做时会发生什么

console.log(collectionData.array[0])  // undefined - 
//it looks for .array[0] property which gives you undefined

这就是为什么在这种情况下建议使用括号表示法

现在考虑以下内容

  console.log(collectionData[array[0]])

这将首先将array[0] 解析为customerName,如果存在,它将为您提供价值。

如果您仍想使用点符号进行访问,仍有办法做到这一点。像

var collectionData = {'customerName':'Ashish','phone':'1234567'}
var array = ['customerName','phone'];
for(var i=0; i<array.length; i++)
console.log(eval('collectionData.'+array[i]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2019-04-16
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    相关资源
    最近更新 更多