如何在TypeScript中向数组添加额外属性

24 浏览
0 Comments

如何在TypeScript中向数组添加额外属性

我想给一个数组添加一个额外的属性,但是在声明时遇到了问题。

小部分

const arr: string[] & {key: number} = ['123'];//ts错误  属性'key'缺失
arr.key = 10;

大部分

我需要按索引对数组进行分组,然后按值进行排序。

如果使用Object.values而不是Object.entries,给数组属性添加一个索引将会很方便。

我知道有很多方法可以做到这一点,但是我认为使用纯js会更容易。

type Arr = {index: number, value: number};
const arr:Arr[] = []
arr.push({
    index: 10,
    value: 2
})
arr.push({
    index: 10,
    value: 1
})
arr.push({
    index: 10,
    value: 3
});
arr.push({
    index: 20,
    value: 100
});
arr.push({
    index: 20,
    value: 50
});
arr.reduce>((prev, curr) => {
    if(!prev[curr.index]){
        prev[curr.index] = [];//ts错误 属性缺失
        prev[curr.index].index = curr.index;
    }
    prev[curr.index].push(curr);
    prev[curr.index].sort((a,b) => a.value - b.value);//或者一些插入排序算法。
    return prev;
},{})

0