基本上,我希望能够通过将单个键的值放入数组并将其设置为我的主对象以供以后访问,从而为单个键添加多个值。我怎样才能最好地做到这一点?真令人沮丧,我感到沮丧,问自己为什么我曾经以为自己可以做到这一点。

let mainObj = {}


const func = (str, obj) => {
  mainObj[str] = [obj]
}

func('str1', {content: 'content1' } )
func('str2', {content: 'content2' } )
func('str2', {content: 'content3' } )

console.log(mainObj)

//instead of this:
{ str1: [ { content: 'content1' } ],
  str2: [ { content: 'content3' } ] }


//I want this:
{
  str1: [ { content: 'content1' } ],
  str2: [ {content: 'content2' }, { content: 'content3' } ]
}

最佳答案

您应该先检查是否已经有带有该字符串键的数组。

如果是,则将其推送到该阵列,而不是将其替换为新阵列,

如果没有,那么做您正在做的事情用该键创建一个数组


let mainObj = {}


const func = (str, obj) => {
  if (mainObj[str]){
    mainObj[str].push(obj)
  }else{
    mainObj[str] = [obj]
  }
}

func('str1', {content: 'content1' } )
func('str2', {content: 'content2' } )
func('str2', {content: 'content3' } )

console.log(mainObj)

//instead of this:

10-08 04:27