如何在JavaScript中创建动态数组?

时间:2015-08-11 07:36:54

标签: javascript json node.js

我有一个类似

的数组
{
  "Count": 3,
  "Items": [
    {
      "prod_price": {
        "N": "100"
      },
      "prod_name": {
        "S": "Laptop"
      },
      "prod_Id": {
        "N": "3"
      }
    },
    {
      "prod_price": {
        "N": "1000"
      },
      "prod_name": {
        "S": "Mouse"
      },
      "prod_Id": {
        "N": "2"
      }
    },
    {
      "prod_price": {
        "N": "2000"
      },
      "prod_name": {
        "S": "Keyboard"
      },
      "prod_Id": {
        "N": "1"
      }
    }
  ],
  "ScannedCount": 3
} 

我需要像

这样的输出
{
  "Count": 3,
  "Items": [
    {
      "prod_price" : "100",
      "prod_name": "Laptop",
      "prod_Id":  "3"
    },
    {
      "prod_price" : "1000",
      "prod_name": "mouse",
      "prod_Id":  "2"
    },
    {
      "prod_price" : "2000",
      "prod_name": "keyboard",
      "prod_Id":  "1"
    },

  ],
  "ScannedCount": 3
}

我正在尝试获得此输出但是没有能够得到这个可以帮助我。

var items=data['Items'];
        var itemresult={};
        itemvalues={};


    for(var attributename in items){

        for(var itemattribute in items[attributename]){

            for(var key in items[attributename][itemattribute]){

              console.log(itemvalues);
              itemresult.attributename.itemattribute=items[attributename][itemattribute][key];

            }

        }

我是 node.js 的新手,并且没有完全使用 for loops 的方法。 我已经尽了最大努力,好像在 php 中我们有 for-each 循环,所以我们可以跳过索引值。

如果我能做到这一点,那么这个转换将会完成。我不知道该怎么做,你能帮我找到解决方案吗?

我知道可能存在一些问题,因为我不知道确切的语法,所以任何帮助都会受到赞赏。谢谢

1 个答案:

答案 0 :(得分:2)

var items = data['Items'];

var result = [];
items.forEach(function(item) {
  result.push({
    prod_price: item.prod_price.N,
    prod_name: item.prod_name.S,
    prod_Id: item.prod_Id.N
  });
});

您可以选择使用.map

var result = items.map(function(item) {
  return {
    prod_price: item.prod_price.N,
    prod_name: item.prod_name.S,
    prod_Id: item.prod_Id.N
  };
});