【问题标题】:React Native - loop through key value arrayReact Native - 遍历键值数组
【发布时间】:2018-05-16 11:30:35
【问题描述】:

如何循环遍历这个数组并将密钥(“ETH_SAN”、“ETH_LINK”)显示到组件中?

{
  ETH_SAN: 
   { last: '0.000981',
     high: '0.0010763',
     low: '0.0009777',
     lowestAsk: '0.00098151',
     highestBid: '0.0007853',
     percentChange: '-1.83619353',
     baseVolume: '7.3922603247161',
     quoteVolume: '7462.998433' },
  ETH_LINK: 
   { last: '0.001',
     high: '0.0014',
     low: '0.001',
     lowestAsk: '0.002',
     highestBid: '0.001',
     percentChange: '-28.57142857',
     baseVolume: '13.651606265667369466',
     quoteVolume: '9765.891979953083752189' }
  // all possible markets follow ...
}

所以它打印出这个:

<Text>ETH_SAN</Text>
<Text>ETH_LINK</Text>

【问题讨论】:

  • 这不是一个数组。
  • 类似:Object.keys('yourObjectName').map((key) =&gt; &lt;Text&gt;{key}&lt;/Text&gt;)?
  • 工作@gaback - 谢谢!
  • 太好了,这很有帮助! @Nickmcoomb Mikhail Katrin 使用相同的解决方案,他和我一样看到了这一点,并花时间编写代码。你能接受他的回答吗?谢谢!

标签: javascript reactjs react-native ecmascript-6


【解决方案1】:

你可以使用Object.keys()

const obj = {
  ETH_SAN: 
   { last: '0.000981',
     high: '0.0010763',
     low: '0.0009777',
     lowestAsk: '0.00098151',
     highestBid: '0.0007853',
     percentChange: '-1.83619353',
     baseVolume: '7.3922603247161',
     quoteVolume: '7462.998433' },
  ETH_LINK: 
   { last: '0.001',
     high: '0.0014',
     low: '0.001',
     lowestAsk: '0.002',
     highestBid: '0.001',
     percentChange: '-28.57142857',
     baseVolume: '13.651606265667369466',
     quoteVolume: '9765.891979953083752189' }
  // all possible markets follow ...
}

const keys = Object.keys(obj);

console.log(keys);

// add following line in your render() method
//Object.keys(obj).map(key => <Text>{key}</Text>)

【讨论】:

    【解决方案2】:

    在下面使用这个

     const data = {
          ETH_SAN: 
           { last: '0.000981',
             high: '0.0010763',
             low: '0.0009777',
             lowestAsk: '0.00098151',
             highestBid: '0.0007853',
             percentChange: '-1.83619353',
             baseVolume: '7.3922603247161',
             quoteVolume: '7462.998433' },
          ETH_LINK: 
           { last: '0.001',
             high: '0.0014',
             low: '0.001',
             lowestAsk: '0.002',
             highestBid: '0.001',
             percentChange: '-28.57142857',
             baseVolume: '13.651606265667369466',
             quoteVolume: '9765.891979953083752189' }
          // all possible markets follow ...
        }
    
    //Step 1:    
        for(key in data){
           <Text>{key}</Text>
        }
        or
    //Step 2:
       Object.keys(myObj).forEach(function (key) {
        let obj = myObj[key];
         <Text>{key}</Text>
        // do something with obj
      });
    

    https://esdiscuss.org/topic/es6-iteration-over-object-values

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2021-01-07
      • 2021-09-21
      • 2017-08-22
      相关资源
      最近更新 更多