从数组中打印键和值

时间:2017-12-11 09:11:25

标签: javascript ecmascript-6

我有像

这样的对象
let sample = {a:5, b:3 , c:7, d:8}
Object.entries(sample) 

现在我将得到一个长度为4的数组

[ [a,5], [b,3], [c,7] , [d,8] ] 

其中键和值将作为数组值。

现在我需要将值打印为   

         
  • a保持值5
  •      
  • b保持值3
  •      
  • c保持值7
  •      
  • d保持值8
  •   

2 个答案:

答案 0 :(得分:1)

我找到了解决方案:

let sample = {a:5, b:3, c:7, d:8};
for (const [key,value] of Object.entries(sample)) {
  // return whatever you need
  console.log(`${key} holds the value ${value}`)
}

我希望这能解决问题

答案 1 :(得分:1)

您发布的答案在技术上是正确的,但它只适用于最现代化的浏览器。

例如,任何版本的IE都不支持Object.entriesfor...of也不是。let statementObject.keys至少需要IE11。

如果您关心在旧版浏览器中运行的代码,请考虑使用eg。  forEach代替了Object.entries,var而不是for ...和this issue而不是let。

此代码将执行相同的操作,但在IE9中运行正常:

var sample = {a:5, b:3 , c:7, d:8};
var keys = Object.keys(sample);

keys.forEach(function(key){
  console.log(key + " holds the value " + sample[key]);
});

即使上面的代码太过现代,你也可以采用以下方法:

var sample = {a:5, b:3 , c:7, d:8};

for (var key in sample) {
  console.log(key + " holds the value " + sample[key]);
}

该代码甚至可以在IE6中使用!