如何为NodeJS循环分配变量

时间:2019-12-02 13:08:33

标签: node.js loops for-loop

我有一个名为req.body.items的数组,该数组始终包含一个或多个项目。而且我必须根据它具有的项目数量来分配一些变量,例如:

for (x in req.body.items.length) {
    var width = req.body.items[x].dimensions.width * 100;
    var height = req.body.items[x].dimensions.height * 100;
    var weight = req.body.items[x].dimensions.weight;
    var depth = req.body.items[x].dimensions.depth * 100;
    var quantity = req.body.items[x].quantity;
    var sku = req.body.items[x].sku;
};

问题是我将具有与项目一样多的“宽度”,因此,如果我有3个项目,则必须具有3个宽度。而且我不知道该怎么做。我已经搜索过了,但是我只在Javascript中找到了前端,我需要它来创建API。

可能就像var width0, var width1, var width2, etc

2 个答案:

答案 0 :(得分:1)

let req={
  body: {
    items: [
      {
        dimensions: {
          width: 1,
          height:3,
          weight:4,
          quantity:7
        }
      },
      {
        dimensions: {
          width: 5,
          height:2,
          weight:6,
          quantity:8
        }
      }
    ]
  }
}

let dimensions = req.body.items.reduce((result,item)=>{
    Object.entries(item.dimensions).map(([key,value])=>(!!result[key] ? result[key]=[...result[key], value*100]: result[key]=[value*100]));
    return result; 
  },{});

console.log(dimensions);

答案 1 :(得分:0)

我相信您需要这样的东西:

var width = [];
var height = [];
var weight = [];
var depth = [];
var quantity = [];
var sku = [];
for (let x in req.body.items.length) {
  width.push(req.body.items[x].dimensions.width * 100);
  height.push(req.body.items[x].dimensions.height * 100);
  weight.push(req.body.items[x].dimensions.weight);
  depth.push(req.body.items[x].dimensions.depth * 100);
  quantity.push(req.body.items[x].quantity);
  sku.push(req.body.items[x].sku);
};

现在,widthheight ...正在arrays确认您的数据。