如何使用.map()获取对象数组中的键?

时间:2017-11-01 03:04:58

标签: javascript reactjs react-native

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

您可以将Object.keysmap method.Object.keys一起使用,返回它自己的属性数组。因此Object.keys(item)[0]将为每个对象提供密钥。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

使用Object.keys() -

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

data.forEach(social => console.log(Object.keys(social)[0]));

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