繁体   English   中英

javascript:在 object 中构建一个 object 并向其添加键/值对

[英]javascript: Building an object inside an object and adding key/value pairs to it

我从全局 scope 中的空 object 开始,然后在我想添加价格和数量的时候获取一个 ID。 该脚本遍历一个列表,对于存在 ID 的每一行,我希望添加quantity: price

我希望我的 object 看起来像这样:

const obj = {
  id1: {
    qty1: price
    qty2: price
    qty3: price
    qty4: price
    qty5: price
    qty6: price
    qty7: price
  }
  id2: {
    qty1: price
    qty2: price
    qty3: price
    qty4: price
    qty5: price
    qty6: price
    qty7: price
  }
}

目前我只得到一个价格,因为每次运行都会替换另一个。

const obj = {}
obj[id] = { [qty]: price }

// Result
obj: {
  id: {
    qty: price
  }
}

你总是可以传播

const obj = {}
obj[id] = {...obj[id], qty: price }

您必须创建一个新的 object 只有在还没有的情况下

if (!obj[id]) obj[id] = {}
if (!obj[id][qty]) obj[id][qty] = {}

我添加了一个循环来展示它是如何工作的:

 const ids = ['id1', 'id2'] const qtys = ['qty1', 'qty2'] const price = 1 const obj = {} for (const id of ids) { for (const qty of qtys) { if (.obj[id]) obj[id] = {} if (.obj[id][qty]) obj[id][qty] = {} obj[id][qty] = Math.random() * 100 | 0 } } console.log(obj)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM