首页 > 解决方案 > 如何切换数组的特定属性并使用node.js获取值

问题描述

我有下面的 JSON 文件,数组的长度将始终保持为 0。

示例.json:

[
    {
        "session1":"adfuwkko2938893okksjudisojowkekkw",
        "session2":"asfkdkksi2io20909389eolsl0-2889d8",
        "session3":"jfdskdfsoidfosdfi2334234889299209k",
        "session4":"fdsadfkllkpsdiiwkk2388392902019782",
        "session5":"kfksdfuiwllepspoodsfkkllsldlkkmem,",
        "session6":"kdfksdoillsiioepwppeik993289200222"
    }
]

我只想获取作为函数参数传递的上述键的值,如下所示

const pathToSessionKey = require('../../Sample.json');

async function getValue(keyIn)   // I need to fetch the argument 'key' value from the above json file
{
 return new Promise(function (resolve, reject){
             for(var key in pathToSessionKey[0])
             {
                 if(key === keyIn)   //Checking if the keyIn argument is exist in the json file
                 {
                     console.log(key);  //Able to print the key but not sure how to get value.
                 }
             }
    });
}

例子:

运行上述函数,如下所示:

getValue("session6").then(ele =>{ console.log(ele)});

输出:

**session6** but expected is "kdfksdoillsiioepwppeik993289200222"

有人可以帮我找到基于函数参数键的值。

标签: javascriptnode.jsjson

解决方案


2 需要改进的地方

  1. 回报承诺
  2. 您可以在迭代或其他更简单的方式时使用 Object.entries 获取键和值。
async function getValue(keyIn){
 return new Promise(function (resolve, reject){
  for (const [key, value] of Object.entries(pathToSessionKey[0])) {
    if(key === keyIn) {
      console.log(value);
      resolve(value)
    }
  }
  });
}

getValue("session6").then(ele =>{ console.log(ele)}); // kdfksdoillsiioepwppeik993289200222

让我知道它是否有帮助!


推荐阅读