我需要将数组转换为具有键值的对象。我尝试过一些代码。但没有得到确切的结果。我可以使用 lodash 或 underscore js 来实现吗?
array = [
{
facebook: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
},
{
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
twitter: 'disneyland',
},
{
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
linkedin: 'disneyland',
},
{
xing: 'disneyland',
preview_image_url: ''
},
{
preview_image_url: 'http: //amt.in/img/amt_logo_big.png',
weibo: 'disneyland'
}
]
预期输出
result = {
facebook: {
facebook: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
},
twitter: {
twitter: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
},
linkedin: {
linkedin: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
},
xing: {
linkedin: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
},
weibo: {
linkedin: 'disneyland',
preview_image_url: 'http: //amt.in/img/amt_logo_big.png'
}
}
我已经尝试过了
var newnwcontent = {};
array.forEach(function (network) {
var name = Object.keys(network)[0];
newnwcontent[name] = network;
});
最佳答案
您需要检查属性键,不保证索引0
var newnwcontent = {}
array.forEach(function(el) {
var keys = Object.keys(el)
var key = keys[0] == 'preview_image_url' ? keys[1] : keys[0]
newnwcontent[key] = el
})
关于javascript - 使用 with key 将数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680374/