【问题标题】:How to convert array string to attribute? [duplicate]如何将数组字符串转换为属性? [复制]
【发布时间】:2019-04-22 07:02:34
【问题描述】:

我需要通过数组值调用JSON值,怎么做?

var key = ['name','address'];

for(let i=0; i<key.length; i++){
   console.log(response.data.data.key[i]); // nothing happen
}

【问题讨论】:

  • 你能发布更多你的代码吗?没有迹象表明 response 是什么,它包含什么,它在哪里被初始化,或者它可能的结构。
  • response.data.data 是 json 数据,通常我叫它:response.data.data.name,但我想通过数组值来调用它

标签: javascript arrays json object ecmascript-6


【解决方案1】:

您正在寻找括号符号

var key = ['name','address'];

for(let i=0; i<key.length; i++){
   console.log(response.data.data[key[i]]); 
}

【讨论】:

    【解决方案2】:

    使用动态属性表示法:

    var response = {
      data: {
        data: {
          name: "Jack",
          address: "Unknown"
        }
      }
    };
    
    var key = ['name', 'address'];
    
    for (let i = 0; i < key.length; i++) {
      console.log(response.data.data[key[i]]);
    }

    【讨论】:

    • 在 stackoverflow 上多年使用代码千里眼 :-)
    【解决方案3】:

    您可以使用forEach() 制作单个班轮代码:

    var response = {
      data: {
        data: {
          'name': 'someName',
          'address': 'someAddress',
          'age': 10
        }
      }
    }
    var key = ['name','address'];
    
    key.forEach((i) => console.log(response.data.data[i]));

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 2015-10-23
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多