打字稿将自定义对象分配给任何对象

时间:2021-04-03 04:48:07

标签: reactjs typescript typescript-typings

尝试使用以下代码对表数据进行排序 https://github.com/chuvikovd/multi-column-sort,但如何将自定义对象传递给 SortArray[T] 对象。

我的自定义对象就像

const obj = [{parameter:'firstname', direction: 'ASC'},{parameter:'lastname', direction: 'DESC'}]

如何将 obj 转换为像 [['firstname':'ASC'],'lastname':'DESC'] 这样的数组?

1 个答案:

答案 0 :(得分:0)

来自docs

<块引用>

sortArrayOrObject arrayobject 元组数组或对象定义要排序的列、顺序和方向,例如[['name', 'ASC'], ['city', 'DESC']]{ name: 'ASC', city: 'DESC' }

您可以使用 Array.prototype.map 将输入数组转换为元组数组。

const arr = [{ parameter: 'firstname', direction: 'ASC' }, { parameter: 'lastname', direction: 'DESC' }]

const result = arr.map((item) => [item.parameter, item.direction])

console.log(result)

或者您可以使用 Array.prototype.reduce 将输入数组转换为对象。

const arr = [{ parameter: 'firstname', direction: 'ASC' }, { parameter: 'lastname', direction: 'DESC' }]

const result = arr.reduce((acc, item) => ({
  ...acc,
  [item.parameter]: item.direction,
}), {})

console.log(result)