【问题标题】:TypeScript: How to make object from array of tuple?TypeScript:如何从元组数组中创建对象?
【发布时间】:2021-09-09 03:23:11
【问题描述】:

我有以下元组数组,需要从中创建一个对象,如何?

Object.keys(invoiceItems)?.map(function (key, item) {
  [key, 1];
}

我知道在 Swift Dictionary(uniqueKeysWithValues: 中我需要方法调用,在 Typescript 中呢?

【问题讨论】:

  • Object.fromEntries
  • JavaScript 是否真的有元组(在 TC39 proposal 之外)?
  • @jarmod 不完全是,但 TypeScript 确实具有不同于数组的元组类型签名(尽管在执行时,它们的行为相同)。
  • @jarmod 你使用了'let aa = Object.keys(invoiceItems).forEach((key)....' 这将返回未定义,尝试使用同样的地图!!
  • @WasitShafi 不知道你在这里指的是什么。在这篇文章中没有人使用forEach

标签: typescript


【解决方案1】:

假设元组是指两个元素的数组,您可以使用Object.fromEntries 创建这样的对象:

const entries = [
  [ "value1", 42 ],
  [ "value2", 17 ],
  [ "value3", 51 ],
];

const object = Object.fromEntries(entries);

console.log(object);

【讨论】:

【解决方案2】:

这里我假设您的发票项目包含一些虚拟数据,以下是使用key:value 创建对象的两种方法

const invoiceItems = [[101, 'Coffee'], [102, 'Tea'], [103, 'Book']]

// Method 1
const o =  Object.fromEntries(invoiceItems);
console.log('o :', o)


// Method 2
const o2 = {}
Object.keys(invoiceItems).forEach(i => o2[invoiceItems[i][0]] = invoiceItems[i][1])
console.log('o2 :', o2)

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多