如何在 TypeScript 中创建对象数组?


在 TypeScript 中,数组包含数据或不同的值,也可以包含对象。对象包含 TypeScript 中的属性和方法。我们可以通过引用对象来访问对象属性并调用对象方法。

在本教程中,我们将学习如何在 TypeScript 中创建多个对象的数组。我们还将学习执行一些操作,例如对对象数组进行排序。

语法

这里,我们给出了创建对象数组需要遵循的语法。

let obj_array: Array<Object_Type> = [{object properties}]

在上述语法中,Object_Type 是一种对象类型,它定义了数组中所有对象将包含的属性及其数据类型。

示例

在这个例子中,我们使用了类型别名来创建对象类型。objType 包含数字类型的 obj_id 和字符串类型的 obj_value。

我们创建了包含五个不同对象(具有不同属性值)的 objType 对象数组。此外,我们还从第一个索引访问对象并读取其属性值。

// Creating the type for the object
type objType = {
   obj_id: number;
   obj_value: string;
};
// creating the array of objects
let objArray: Array<objType> = [
   { obj_id: 1, obj_value: "TutorialsPoint" },
   { obj_id: 2, obj_value: "TypeScript" },
   { obj_id: 3, obj_value: "Shubham" },
   { obj_id: 4, obj_value: "TutorialsPoint" },
   { obj_id: 5, obj_value: "TypeScript" },
];
console.log(
   "The properties values of the object at the first index in objArray is "
);
// accessing the object and its properties
console.log(objArray[0].obj_id);
console.log(objArray[0].obj_value);

编译后,它将生成以下 JavaScript 代码:

// creating the array of objects
var objArray = [
   { obj_id: 1, obj_value: "TutorialsPoint" },
   { obj_id: 2, obj_value: "TypeScript" },
   { obj_id: 3, obj_value: "Shubham" },
   { obj_id: 4, obj_value: "TutorialsPoint" },
   { obj_id: 5, obj_value: "TypeScript" },
];
console.log("The properties values of the object at the first index in objArray is ");
// accessing the object and its properties
console.log(objArray[0].obj_id);
console.log(objArray[0].obj_value);

输出

以上代码将产生以下输出:

The properties values of the object at the first index in objArray is
1
TutorialsPoint

遍历对象数组

我们可以使用循环遍历对象数组。在遍历数组时,我们可以使用基于零的数组索引访问特定对象。从数组中访问对象后,我们还可以访问对象属性。

语法

用户可以按照以下语法遍历对象数组。

for (let obj of objArray) {
   obj.property
}

在上述语法中,我们使用了 for-of 循环遍历对象数组。我们可以通过引用 obj 来访问属性。

示例

在这个例子中,我们使用了 for-of 循环来遍历包含具有不同属性值的多个对象的数组。在 for 循环中,我们得到一个名为 obj 的单个对象,我们可以使用它来访问其属性值。

// creating the array of objects
let objArray = [
   { obj_id: 1, obj_value: "TutorialsPoint" },
   { obj_id: 2, obj_value: "TypeScript" },
   { obj_id: 3, obj_value: "Shubham" },
   { obj_id: 4, obj_value: "TutorialsPoint" },
   { obj_id: 5, obj_value: "TypeScript" },
];
console.log(
   "Iterating through the array of objects using the for-of loop and accessing its properties."
);
// using the for-of loop to iterate through the array of objects
for (let obj of objArray) {
   console.log("obj_id " + obj.obj_id + " obj_value " + obj.obj_value);
}

编译后,它将生成以下 JavaScript 代码

// creating the array of objects
var objArray = [
    { obj_id: 1, obj_value: "TutorialsPoint" },
    { obj_id: 2, obj_value: "TypeScript" },
    { obj_id: 3, obj_value: "Shubham" },
    { obj_id: 4, obj_value: "TutorialsPoint" },
    { obj_id: 5, obj_value: "TypeScript" },
];
console.log("Iterating through the array of objects using the for-of loop and accessing its properties.");
// using the for-of loop to iterate through the array of objects
for (var _i = 0, objArray_1 = objArray; _i < objArray_1.length; _i++) {
    var obj = objArray_1[_i];
    console.log("obj_id " + obj.obj_id + " obj_value " + obj.obj_value);
}

输出

以上代码将产生以下输出:

Iterating through the array of objects using the for-of loop and accessing its properties.
obj_id 1 obj_value TutorialsPoint
obj_id 2 obj_value TypeScript
obj_id 3 obj_value Shubham
obj_id 4 obj_value TutorialsPoint
obj_id 5 obj_value TypeScript

请按照以下步骤进行下一个示例

  • 步骤 1 - 创建一个包含 id、tree_name 和 age 属性的 Tree 接口。还可以使用问号使 age 属性可选。

  • 步骤 2 - 创建名为 trees 的数组,它可以包含 Tree 类型的对象。

  • 步骤 3 - 使用一些对象初始化数组。在下面的示例中,一些对象包含 age 属性,而一些对象不包含,因为它是可选的

  • 步骤 4 - 使用 Array 的 filter() 方法过滤所有年龄大于 20 的对象。

  • 步骤 5 - 在 filter 方法的参数中,传递回调函数,该函数以特定树对象作为参数,并根据树对象是否包含 age 属性以及是否包含 age 属性,以及其值是否大于 20 返回布尔值。

  • 步骤 6 - 打印 filteredTrees 数组。

示例

在这个例子中,我们实现了上述步骤来创建 Tree 对象的数组。此外,我们还使用了 Array 库的 filter() 方法来过滤所有年龄大于 20 的对象。

// Creating the interface for the Tree object
// age is the optional property
interface Tree {
   id: number;
   tree_name: string;
   age?: number;
}
// creating the array of trees
let Trees: Array<Tree> = [
   { id: 10, tree_name: "Palm tree" },
   { id: 15, tree_name: "Guava tree", age: 30 },
   { id: 20, tree_name: "Papita tree", age: 15 },
   { id: 25, tree_name: "Grass tree" },
   { id: 35, tree_name: "Neem tree", age: 21 },
];
// filtering all trees whose age is above 20 years
let filteredTrees: Array<Tree> = Trees.filter((tree) => {
   return tree.age ? tree.age > 20 : false;
});
console.log("The all trees whose age is above 20 are");
console.log(filteredTrees);

编译后,它将生成以下 JavaScript 代码:

// creating the array of trees
var Trees = [
   { id: 10, tree_name: "Palm tree" },
   { id: 15, tree_name: "Guava tree", age: 30 },
   { id: 20, tree_name: "Papita tree", age: 15 },
   { id: 25, tree_name: "Grass tree" },
   { id: 35, tree_name: "Neem tree", age: 21 },
];
// filtering all trees whose age is above 20 years
var filteredTrees = Trees.filter(function (tree) {
   return tree.age ? tree.age > 20 : false;
});
console.log("The all trees whose age is above 20 are");
console.log(filteredTrees);

输出

以上代码将产生以下输出:

所有年龄大于 20 的树是

[ { id: 15, tree_name: 'Guava tree', age: 30 },
{ id: 35, tree_name: 'Neem tree', age: 21 } ]

用户学习了如何创建对象数组。此外,我们还学习了如何创建具有可选属性的对象并将它们添加到数组中。

此外,我们学习了如何使用 for-of 循环遍历对象数组,但用户也可以使用 for 或 while 循环。此外,我们学习了如何在对象数组中使用 filter() 方法,并且用户还可以使用其他方法,例如 find() 和 sort()。我们需要根据需求优化回调函数。

更新于: 2023年1月3日

15K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告