typescript javascript:在对象内部构建对象并向其添加键/值对

dldeef67  于 2022-11-26  发布在  TypeScript
关注(0)|答案(2)|浏览(147)

我从全局范围内的一个空对象开始,然后每次获取一个ID,并将价格和数量添加到该ID中。
我希望我的对象看起来像这样:

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
  }
}
iih3973s

iih3973s1#

只有在没有对象的情况下,才需要创建新对象

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)
gmxoilav

gmxoilav2#

你总是可以传播

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

相关问题