在 TypeScript 中获取数组的最后一个元素
使用 Array.at()
方法获取 TypeScript 中数组的最后一个元素,例如 const last = arr.at(-1)
。 当传递一个负索引时,at()
方法通过从数组末尾倒数返回一个元素。
const arr: string[] = ['a', 'b', 'c'];
// 👇️ const lastAgain: string | undefined
const last = arr.at(-1);
console.log(last); // 👉️ "c"
if (last !== undefined) {
console.log(last.toUpperCase()); // 👉️ "C"
}
// 👇️ Or use optional chaining
console.log(last?.toUpperCase()); // 👉️ "C"
我们使用 Array.at()
方法来获取 TypeScript 中数组的最后一个元素。
该方法采用的唯一参数是要返回的数组元素的索引。
当传递一个负索引时,该方法通过从数组末尾倒数返回一个元素。
at()
方法返回数组中与提供的索引匹配的元素,如果找不到给定的索引,则返回 undefined。
请注意
,TypeScript 将最后一个变量类型为字符串或未定义。
这是准确的,因为如果数组为空,则返回值将是 undefined
。
const arr: string[] = [];
// 👇️ const lastAgain: string | undefined
const last = arr.at(-1);
console.log(last); // 👉️ undefined
if (last !== undefined) {
console.log(last.toUpperCase());
}
// 👇️ Or use optional chaining
console.log(last?.toUpperCase()); // 👉️ undefined
我们可以通过使用简单的类型保护来绕过可能未定义的值。
if
语句和可选的链接 ?.
运算符用作类型保护并排除值未定义的可能性,这使我们能够使用特定于类型的内置方法。
或者,我们可以访问最后一个索引处的数组元素。
要在 TypeScript 中获取数组的最后一个元素,请访问索引为 array.length - 1
的数组,例如 const last = arr[arr.length - 1]
。 计算结果为数组中最后一个元素的索引。
const arr: string[] = ['a', 'b', 'c'];
// 👇️ const last: string
const last = arr[arr.length - 1];
console.log(last); // 👉️ "c"
if (last !== undefined) {
console.log(last.toUpperCase());
}
console.log(last?.toUpperCase());
索引在 JavaScript 中是从零开始的。 这就是为什么我们必须从数组的长度中减去 1 以获得数组中最后一个元素的索引。
请注意
,最后一个变量的类型为字符串,这可能不是您想要的,因为如果数组为空怎么办。
const arr: string[] = [];
// 👇️ const last: string
const last = arr[arr.length - 1];
console.log(last); // 👉️ undefined
即使数组为空,最后一个变量在 TypeScript 中被键入为字符串。
这可能不是我们想要的,因为如果访问一个属性或对一个未定义的值调用一个方法,我们会得到一个错误。
const arr: string[] = [];
// 👇️ const last: string
const last = arr[arr.length - 1];
console.log(last); // 👉️ undefined
// ⛔️ Cannot read properties of undefined (reading 'toUpperCase')
console.log(last.toUpperCase());
我们可以使用类型保护来解决这个问题。
const arr: string[] = [];
// 👇️ const last: string
const last = arr[arr.length - 1];
if (last !== undefined) {
console.log(last.toUpperCase());
}
// 👇️ Or use optional chaining
console.log(last?.toUpperCase()); // 👉️ undefined
我们的 if 条件在调用
toUpperCase()
方法之前显式检查最后一个变量是否存储未定义。
我们可以确定最后一个变量在 if 块中存储了一个字符串。
或者,我们可以使用可选的链接 ?.
运算符,如果引用未定义或为空,它会短路而不是抛出错误。
相关文章
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:153 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。