这个问题可能听起来很愚蠢,但我想为我的对象获得一个键/值对:
var a = {"e":1,"d":3,"f":4}
我试过Object.keys(a) // returns ["e", "d", "f"]
这不会得到与键相关的值,我怎样才能让两者都能在页面中显示。
HTML:
<div>
<img src={value}/> //here i want value 1 to be displayed
{key} //with "e"
</div>
我该怎么做?谢谢!!
干得好。要从对象获取key/value pair
,请使用纯JavaScript方式Object.entries()执行以下操作:
var a = {"e":1,"d":3,"f":4}
for (const [key, value] of Object.entries(a)) {
console.log(`${key} ${value}`);
}
你可以这样做的一种方法是这样的:
var a = {"e":1,"d":3,"f":4}
for(var key in a){
alert(key + ' : ' + a[key])
}
如果你需要迭代每一对。然而,对于in循环在javascript中有点janky,如果你决定,你应该阅读一些关于走这条路线的内容。
var a = {"e":1,"d":3,"f":4}
let container = document.querySelector('.container')
Object.entries(a).forEach(entry =>{
let div = document.createElement('div')
let img = document.createElement('img')
img.src = entry[1]
div.textContent = entry[0]
div.appendChild(img)
container.appendChild(div)
})
<div class="container">
</div>
如果您想获得单个值:
Just use: *a.e* or *a[e]* return 1
eg. <img src={a.e} />
如果你想迭代一个Object来获得价值,有几种方法:
var a = {"e":1,"d":3,"f":4}
方法1:用于:
for ( var x in a) {
console.log('v:',a[x]);
}
方法2:使用地图:
Object.keys(a).map( (k) => {console.log('k',a[k])} );
方法3:使用foreach:
Object.keys(a).forEach(function(key,index) {
console.log('a[key]',a[key]);
});