首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将对象的对象转换为单独的值。

如何将对象的对象转换为单独的值。
EN

Stack Overflow用户
提问于 2020-05-01 16:15:35
回答 2查看 66关注 0票数 2

我试图从JSON调用中访问信息,以便将数据存储到数组中并进一步使用它。这是一个API调用示例API的示例。我正在尝试访问“爱奇”概率,这是一个对象的对象。我需要它的整数值,比如9,53,10,102.等等,我编写了以下代码,将其转换为一个名为dataArray的对象数组,然后对其进行进一步的迭代以获得分离的键: value对。

代码语言:javascript
复制
 const dataArray = Object.values(response.body.data.iaqi);
        const iterator = dataArray.entries();

        for(const[index, element] of iterator){
            console.log(element)
        }

这给了我以下的输出:-

输出

有任何方法可以访问单个数字值并将它们存储在数组中吗?任何帮助都将不胜感激,如果我做错了什么,请纠正我,我是新来的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-01 16:20:58

你是说,像那样?

代码语言:javascript
复制
const src = {"status":"ok","data":{"aqi":137,"idx":1451,"attributions":[{"url":"http://www.bjmemc.com.cn/","name":"Beijing Environmental Protection Monitoring Center (北京市环境保护监测中心)"},{"url":"https://china.usembassy-china.org.cn/embassy-consulates/beijing/air-quality-monitor/","name":"U.S Embassy Beijing Air Quality Monitor (美国驻北京大使馆空气质量监测)"},{"url":"https://waqi.info/","name":"World Air Quality Index Project"}],"city":{"geo":[39.954592,116.468117],"name":"Beijing (北京)","url":"https://aqicn.org/city/beijing"},"dominentpol":"pm25","iaqi":{"co":{"v":5.5},"h":{"v":54},"no2":{"v":13.3},"o3":{"v":57.1},"p":{"v":1002},"pm10":{"v":80},"pm25":{"v":137},"so2":{"v":2.1},"t":{"v":27},"w":{"v":3.6}},"time":{"s":"2020-05-02 00:00:00","tz":"+08:00","v":1588377600},"debug":{"sync":"2020-05-02T01:17:30+09:00"}}},

      result = Object
        .values(src.data.iaqi)
        .map(Object.values)
        .flat()
        
console.log(result)
代码语言:javascript
复制
.as-console-wrapper{min-height:100%;}

如果您的内部对象具有静态结构(单个v键),则可能会稍微缩短上面的内容。

代码语言:javascript
复制
const src = {"status":"ok","data":{"aqi":137,"idx":1451,"attributions":[{"url":"http://www.bjmemc.com.cn/","name":"Beijing Environmental Protection Monitoring Center (北京市环境保护监测中心)"},{"url":"https://china.usembassy-china.org.cn/embassy-consulates/beijing/air-quality-monitor/","name":"U.S Embassy Beijing Air Quality Monitor (美国驻北京大使馆空气质量监测)"},{"url":"https://waqi.info/","name":"World Air Quality Index Project"}],"city":{"geo":[39.954592,116.468117],"name":"Beijing (北京)","url":"https://aqicn.org/city/beijing"},"dominentpol":"pm25","iaqi":{"co":{"v":5.5},"h":{"v":54},"no2":{"v":13.3},"o3":{"v":57.1},"p":{"v":1002},"pm10":{"v":80},"pm25":{"v":137},"so2":{"v":2.1},"t":{"v":27},"w":{"v":3.6}},"time":{"s":"2020-05-02 00:00:00","tz":"+08:00","v":1588377600},"debug":{"sync":"2020-05-02T01:17:30+09:00"}}},

      result = Object
        .values(src.data.iaqi)
        .map(({v}) => v)
        
console.log(result)
代码语言:javascript
复制
.as-console-wrapper{min-height:100%;}

票数 3
EN

Stack Overflow用户

发布于 2020-05-01 16:33:34

我在使用for...in时做了一些工作。遍历所有对象条目并打印出v的值。

代码语言:javascript
复制
var dataArray = {
  co: {
  v: 4.6
  },
  h: {
  v: 54
  },
  no2: {
  v: 9.2
  },
  o3: {
  v: 46.3
  },
  p: {
  v: 1002
  },
  pm10: {
  v: 70
  },
  pm25: {
  v: 137
  },
  so2: {
  v: 1.6
  },
  t: {
  v: 26
  },
  w: {
  v: 3.6
  }
}
for(const element in dataArray){
    console.log(dataArray[element]['v'])
}

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

https://stackoverflow.com/questions/61546340

复制
相关文章

相似问题

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