Я немного смущен тем, как объект с фигурными скобками работает в Typescript. По-видимому, есть разница, являются ли ключи строками или вы просто используете обычный текст в Typescript.
Мне нужно динамически создать объект со свойствами, которые выглядят так.
var ob = {
gtin1:"one",
gtin2:"two",
gtin3:"tree",
}
Проблема в том, что ключи на самом деле не являются строками, поэтому я не могу просто объединить ключи, насколько я понимаю.
var ob = {
"gtin" + "1" : "one",
"gtin" + "2" : "two",
"gtin" + "3" : "tree",
}
Как можно создать объект, динамически добавляя к нему конкатенированные свойства?
Вы можете использовать []
, чтобы обернуть значение динамического ключа
var ob = {
["gtin" + "1"]: "one",
["gtin" + "2"]: "two",
["gtin" + "3"]: "tree",
}
console.log(ob)
Более динамичный способ
const data = ["one", "two", "tree"]
const ob = {}
for (const [index, value] of Object.entries(data)) {
ob["gtin" + (Number(index) + 1)] = value
}
console.log(ob)
Пример машинописного текста
const data = ["one", "two", "tree"]
const ob: {[key: string]: string} = {}
for (const [index, value] of Object.entries(data)) {
ob["gtin" + (Number(index) + 1)] = value
}
console.log(ob)