Javascript Can';t在Node.js中使用地图数据结构

Javascript Can';t在Node.js中使用地图数据结构,javascript,node.js,Javascript,Node.js,我在node.js中的map程序中遇到了一些问题。我试图在node.js程序中使用MAP,但没有得到值。我已经编写了一些代码来使用MAP,但是我认为它不起作用,因为它没有进入循环以获取键值 请找到下面的程序 async CreateProduceMVPRateAsset(data, callback) { var ProducePRICE = {}; var MVPPRICE =[]; var MVPPRICE_BS ={};

我在node.js中的map程序中遇到了一些问题。我试图在node.js程序中使用MAP,但没有得到值。我已经编写了一些代码来使用MAP,但是我认为它不起作用,因为它没有进入循环以获取键值

请找到下面的程序

  async CreateProduceMVPRateAsset(data, callback) {

     var ProducePRICE = {};

             var MVPPRICE =[];
             var MVPPRICE_BS ={};
             var MVPPRICE_LB ={};
             //var ASKINGPRICE= {}// put all the things which need to go to blockchain
            const walletPath = path.join(process.cwd(), 'wallet');
            const wallet = new FileSystemWallet(walletPath);
            console.log(`Wallet path: ${walletPath}`);
            console.log('Data', data);
            console.log('Username', data.username);

 var PRODUCENAME = data.PRODUCE
            console.log('PRODUCENAME', PRODUCENAME);

            var COUNTRY = data.COUNTRY;
            console.log('COUNTRY', COUNTRY);
            var STATE = data.STATE;
            console.log('STATE', STATE);


          var MVPRATES =  data.MVPRATES;  

             console.log('MVPRATERATE', MVPRATES);

             const MVPRATE = new Map(MVPRATES);

// program could not go inside the for loop
             for (const [k, v] of MVPRATE.entries()) {
                 console.log("Inside map", k, v)
                 MVPPRICE = v.RATE  // should go in  MVPPRICE 

                  var Value =  MVPPRICE[0].value // want to get first element value from MVPPRICE array 
                  console.log('Value', Value);

                 var value_lb = Value/40;
                 console.log('value_lb', value_lb);

                 value_lb = Number((value_lb).toFixed(4));

                    console.log('If the value of BS provided controller come here');

                    MVPPRICE_LB.Value = value_lb
                    MVPPRICE_LB.QuantityUnit = 'LB'
                    MVPPRICE_LB.uidisplay = false
                    MVPPRICE_LB.CurrencyUnit = 'USD'

                    MVPPRICE.push(MVPPRICE_LB);
                    ProducePRICE.MVPPRICE = MVPPRICE

                        console.log('MVPPRICE',MVPPRICE);
                   console.log('ProducePRICE',ProducePRICE);

                    // mvpprice.totalPrice = totalPrice;
                    console.log('for pricing',totalPrice);

                    // ProducePRICE.VARIETY = VARIETY;
                    ProducePRICE.PRODUCENAME = PRODUCENAME;
                    ProducePRICE.STATE = STATE;
                    ProducePRICE.COUNTRY = COUNTRY;

              }
我正在使用postman发送的JSON结构

{
"username": "admin2",
  "PRODUCE": "Apple",
  "STATE": "MI",
  "COUNTRY": "US",
  "MVPRATES": {
    "fuji": {
      "VARIETY": "fuji",
      "RATE": [
        {
          "UNIT": "Bussel",
          "CURRENCY": "USD",
          "VALUE": 10.25,
          "UIDISPLAY": true
        }
      ]
    },
    "gala": {
      "VARIETY": "gala",
      "RATE": [
        {
          "UNIT": "Bussel",
          "CURRENCY": "USD",
          "VALUE": 10.25,
          "UIDISPLAY": true
        }
      ]
    }
  }
}
我得到的输出:

您可能需要执行以下操作,这将创建一个包含两个条目的地图,
fuji
gala

const MVPRATES={
“富士”:{
“品种”:“富士”,
“费率”:[{
“单位”:“母线”,
“货币”:“美元”,
“价值”:10.25,
“UIDISPLAY”:真
}]
},
“晚会”:{
“综艺”:“晚会”,
“费率”:[{
“单位”:“母线”,
“货币”:“美元”,
“价值”:10.25,
“UIDISPLAY”:真
}]
}
}
const MVPRATE=新映射(Object.entries(MVPRATES));
for(MVPRATE.entries()的常量[k,v]{
控制台日志(“内部地图”,k,v)

}
奇怪的是,你没有得到一个错误
TypeError:object不可iterate
考虑数据。MVPRATES不可iterate@Bravo我没有得到这个错误,因为它没有进入循环,我想哦,错误应该来自
const MVPRATE=new Map(MVPRATES)。。。在循环之前-您是否在try/catch中调用
CreateProduceMVPRateAsset
,并忽略错误?为什么
CreateProduceMVPRateAsset
声明为
async
,因为a)它不做任何
wait
和b)它没有理由是asynchronousouosk@I使它像const MVPRATE=new Map()一样;它运行了,但仍然没有进入for循环并跳过循环。当然,因为Map是空的,所以没有什么需要迭代的-使用Map的目的是什么?新玩具?或者你想这样做有什么特别的原因吗?非常感谢@Bravo我必须检查一下我的需要,但是你的解决方案很有帮助@Bravo我这里有个小问题,我使用了var Value=MVPPRICE[0]。Value,它是未定义的。你能告诉我为什么吗?如果可能的话。。。因为
value
不是
value
,因为它们是两个不同的东西(javascript区分大小写)