首页 > 解决方案 > 在循环中创建对象属性

问题描述

我想在这个循环中创建新的对象属性。
喜欢

这就是我想要实现的

response.product.product.0
response.product.product.0.quantity
response.product.product.0.id
response.product.product.0.description

response.product.product.1
response.product.product.1.quantity
response.product.product.1.id
response.product.product.1.description

依此类推,对于循环的每次迭代,我都需要创建新属性。但是迭代是随机的,它可以在 1 到 4 次迭代之间......

for (let i = 0; i < Math.floor(Math.random() * 4); i++) {
      const salesOrderItem = await createItem(OBJECT_ID, csfrToken, cookies,
      validProducts.pop())
      const PRODUDUCT_DESCRIPTION = salesOrderItem.data.d.results.Description
      const PRODUCT_ID = salesOrderItem.data.d.results.ProductID
      const PRODUCT_QUANTITY = Math.trunc(salesOrderItem.data.d.results.Quantity)
      response['product' + i] = PRODUCT_ID
      response['productDescription' + i] = PRODUDUCT_DESCRIPTION
      response['productQuantity' + i] = PRODUCT_QUANTITY
    }

这是我到目前为止得到的,但它不是我想要的

标签: javascript

解决方案


尝试这个:

response = {product:{product:{} }}
    for (let i = 0; i < Math.floor(Math.random() * 4); i++) {
          const salesOrderItem = await createItem(OBJECT_ID, csfrToken, cookies,
          validProducts.pop())
          const PRODUDUCT_DESCRIPTION = salesOrderItem.data.d.results.Description
          const PRODUCT_ID = salesOrderItem.data.d.results.ProductID
          const PRODUCT_QUANTITY = Math.trunc(salesOrderItem.data.d.results.Quantity)
          response.product.product[i] = {};
          response.product.product[i]['id'] = PRODUCT_ID
          response.product.product[i]['quantity'] = PRODUCT_QUANTITY
          response.product.product[i]['description'] = PRODUDUCT_DESCRIPTION
        }

推荐阅读