Как добавить JSON в другой JSON - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь добавить новый объект в цикле for к запросу JSON.

это не работает:

setCapabilities('default',['1','2','3'])
export function 
setCapabilities(kaiId:number|"default"|"defaultLeft"|"defaultRight",capabilitiesArr:string[]){ 
    var request:object = {
        type:'setCapabilities',
        kaiId:kaiId
    };
    capabilitiesArr.forEach(element => {
        var obj = {
            element:true
        }
        console.log(obj)
    });

}

Это также не работает:

export function setCapabilities(kaiId:number|"default"|"defaultLeft"|"defaultRight",capabilitiesArr:string[]){ 
    var request:object = {
        type:'setCapabilities',
        kaiId:kaiId
    };
    capabilitiesArr.forEach(element => {
        var obj[element]=true
        console.log(obj)
    });
}   

Я хочу, чтобы вывод был таким:

console.log(request)
{
type:'setCapabilities',
kaiId:'default',
'1':true,
'2':true,
'3':true
}

1 Ответ

1 голос
/ 29 апреля 2019

Я обновил код в javascript для браузера, чтобы запустить фрагмент кода, но вы можете преобразовать его в машинописный текст для вашего использования

function setCapabilities(kaiId, capabilitiesArr) {
  var request = {
    type: 'setCapabilities',
    kaiId: kaiId
  }
  var obj = Object.assign({}, request)
  capabilitiesArr.forEach(element => {
    obj[element] = true
  });
  console.log(obj)
}

setCapabilities('default',['1','2','3'])

В машинописном тексте используйте ниже код

function setCapabilities(kaiId:number|"default"|"defaultLeft"|"defaultRight",capabilitiesArr:string[]) {
  var request:object = {
    type: 'setCapabilities',
    kaiId: kaiId
  }
  var obj = {...request}
  capabilitiesArr.forEach(element => {
    obj[element] = true
  });
  console.log(obj)
}
...