NodeJS:尝试获取特定值的密钥

时间:2017-10-17 09:26:34

标签: node.js object key

我有一个看起来像这样的对象:

var blu = {
  obj_name: foo,
  some_data: {
          data1: {
               bla1: -10,
               bla2: 20,
               bla3: 30
               },
          data2: {
               blo1: -10,
               blo2: -20,
               blo3: 30
               }
            },
   some_other_data: test
}

我的目标是在对象的some_data部分中提取并操作每个正值,并在我的示例中提取对应于此值的值和键:

  

" bla2 for 10"
  " bla3为30"
  " blo3代表30"

不幸的是,我不确定如何获取与该值对应的键的字符串。我试过这个:

Object.keys(blu.some_data).forEach(k => {
    Object.keys(blu.some_data[k]).forEach(p => {
      if (blu.some_data[k][p] > 0) {
        console.log(
          `${Object.keys(blu.some_data[k][p])} for ${blu.some_data[k][p]}`
        );
      }
    });
  });

我正确地获得了正值但不是相应的键:

  

" 10"
  " 30"
  " 30"

如何打印对象的特定键?

1 个答案:

答案 0 :(得分:1)

您的console.log行应该如下所示

console.log(`${p} for ${blu.some_data[k][p]}`);

您要打印的密钥名称是p。