📜  向数组中的所有对象添加键值对 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:07:29.404000             🧑  作者: Mango

向数组中的所有对象添加键值对 - TypeScript

有时候,我们需要向一个数组中的所有对象添加同一个键值对,这时候需要遍历数组中的所有对象并逐一添加这个键值对。在 TypeScript 中,可以使用类型声明和泛型来确保代码的类型安全。

下面就是一个将 age 属性添加到一个数组的每个对象中的例子:

interface Person {
  name: string;
}

const people: Person[] = [
  { name: 'Alice' },
  { name: 'Bob' },
  { name: 'Charlie' }
];

function addAge<T extends object>(arr: T[], key: string, value: number): T[] {
  return arr.map(obj => ({ ...obj, [key]: value }));
}

const peopleWithAge = addAge(people, 'age', 30);
console.log(peopleWithAge);

在这个例子中,我们定义了一个 Person 接口,用于声明每个数组中的对象应该有哪些属性。接着我们定义了一个 addAge 函数,该函数接受一个泛型数组 arr,表示要添加 age 属性的数组,key 表示要添加的键名,value 表示要添加的值。该函数使用 Array.map() 方法遍历所有对象,利用对象的展开语法 { ...obj, [key]: value } 来添加属性,然后返回一个新的数组。

最后,我们调用 addAge 函数并传入 people 数组和要添加的键名和值,得到一个新的数组 peopleWithAge,并将其输出到控制台。

此时控制台输出如下:

[
  { name: 'Alice', age: 30 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 30 }
]

以上就是在 TypeScript 中向数组中的所有对象添加键值对的方法,希望本文对您有所帮助。