【问题标题】:How do I get the key in array of objects using .map()? [duplicate]如何使用 .map() 获取对象数组中的键? [复制]
【发布时间】:2017-11-01 03:04:58
【问题描述】:

所以我这里有一个这样的数组

[{"facebook":"https://facebook.com"}, {"instagram":"https://instagram.com"}]

现在我想将键显示为图标名称,将值显示为 href 链接。

socials.map((social, index) => { 
    return(
        <View key={index}>
             <Icon name={social.facebook} onPress={() => {}} />
        </View>
    ); 
})

如何在不选择特定键名的情况下将键分配给图标名称? 谢谢。

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

    如果socials 是您的初始数据数组,那么我将执行以下操作:

    socials.map((social, index) =>
        (
            <View key={index}>
                 <Icon name={Object.keys(social)[0]} onPress={() => {}} />
            </View>
        )
    )
    

    【讨论】:

    • 谢谢!它有效。
    【解决方案2】:

    使用Object.keys() -

    let data = [{"facebook":"https://facebook.com"}, {"instagram":"https://instagram.com"}]
    
    data.forEach(social => console.log(Object.keys(social)[0]));

    在这里,我使用.forEach() 而不是.map() 只是为了记录密钥的名称,但想法与.map() 相同。

    【讨论】:

    • [{"facebook":"https://facebook.com"}, {"instagram":"https://instagram.com"}].map(Object.keys).map(String)
    【解决方案3】:

    您可以使用Object.keysmap method.Object.keys 返回一个它自己的属性数组。所以Object.keys(item)[0] 会给出每个对象的密钥。

    var social = [{
      "facebook": "https://facebook.com"
    }, {
      "instagram": "https://instagram.com"
    }]
    var x = social.map(function(item) {
      return Object.keys(item)[0]
    })
    console.log(x)

    【讨论】:

      猜你喜欢
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2015-11-05
      相关资源
      最近更新 更多