如何在TypeScript中找到数组中最后出现的元素
我们将学习如何在TypeScript中找到数组中元素的最后索引。在开发中,一个数组的数据可能包含重复的数据,我们可能需要保留最后出现的元素。
例如,我们已经从数据库中获取了所有用户的登录历史。现在,我们想找到特定用户最后一次登录的时间。在这种情况下,我们可以使用下面的方法来查找数组中元素的最后出现时间。
从数组中的最后一个开始搜索
为了找到最后出现的元素,我们可以从最后一个元素开始搜索。由于我们找到了从最后一次出现的元素,我们可以把这个索引作为从开始出现的元素的最后一次出现。
语法
用户可以按照下面的语法,在TypeScript中搜索数组中最后出现的元素。
let simple_arr: Array<number> = [
20, 232, 3, 21, 23, 343, 4, 4, 3, 3, 20, 20, 54, 43,
];
let element_to_search: number = 20;
for (let i = simple_arr.length - 1; i >= 0; i--) {
if (simple_arr[i] == element_to_search) {
return i;
// last index of element is i;
}
}
算法
- 第1步 – 定义任何数据类型的数组。
-
第2步 – 使用for循环,从最后一个数组开始迭代。
-
第3步–用数组的长度-1初始化变量’i’,然后迭代直到’i’变得小于0。
-
第4步 – 在for循环内,检查我们是否找到了搜索元素的第一个匹配,并返回当前索引i。
-
第5步 – 如果我们在数组的完整迭代后没有找到搜索的元素,返回-1。
示例
在下面的例子中,我们创建了名为searchFromLast()的函数,它以搜索元素为参数,并返回搜索元素的最后索引。
为了找到数组中最后出现的元素,我们在searchFromLast()函数中实现了上述算法。
// Creating the numbers array
let simple_arr: Array<number> = [
20, 232, 3, 21, 23, 343, 4, 4, 3, 3, 20, 20, 54, 43,
];
// function to find the last index of element
function searchFromLast(element: number): number {
// use the for loop to start searching from the last
for (let i = simple_arr.length - 1; i >= 0; i--) {
// return the first occurence of the element from the last
if (simple_arr[i] == element) {
return i;
}
}
// if element not found, return -1
return -1;
}
// call the searchFromLast() function for various elements
console.log(
"The last occurence of the 20 in the array is at index " + searchFromLast(20)
);
console.log(
"The last occurence of the 3 in the array is at index " + searchFromLast(3)
);
console.log(
"The last occurence of the -3 in the array is at index " + searchFromLast(-3)
);
编译时,它将生成以下JavaScript代码。
// Creating the numbers array
var simple_arr = [
20, 232, 3, 21, 23, 343, 4, 4, 3, 3, 20, 20, 54, 43,
];
// function to find the last index of element
function searchFromLast(element) {
// use the for loop to start searching from the last
for (var i = simple_arr.length - 1; i >= 0; i--) {
// return the first occurence of the element from the last
if (simple_arr[i] == element) {
return i;
}
}
// if element not found, return -1
return -1;
}
// call the searchFromLast() function for various elements
console.log("The last occurence of the 20 in the array is at index " + searchFromLast(20));
console.log("The last occurence of the 3 in the array is at index " + searchFromLast(3));
console.log("The last occurence of the -3 in the array is at index " + searchFromLast(-3));
输出
上述代码将产生以下输出 —
The last occurence of the 20 in the array is at index 11
The last occurence of the 3 in the array is at index 9
The last occurence of the -3 in the array is at index -1
使用TypeScript的findLastIndex()方法
在TypeScript中,findLastIndex()方法是内置库方法。我们可以用它来寻找数组中特定元素的最后出现。它将搜索的元素作为参数,并返回其最后的索引。
语法
用户可以按照下面的语法来使用findLastIndex()方法来搜索TypeScript中最后出现的元素。
reference_arr.lastIndexOf(element);
参数
- reference_arr – 它是一个数组,我们想在其中搜索一个特定的元素。
-
element – 这是一个搜索元素,我们需要找到最后出现的元素。
返回值
如果该元素在数组中存在,它返回搜索元素的基于零的最后索引;否则,返回-1。
示例
在下面的例子中,我们用数组的lastIndexOf()方法来寻找各种字符串的最后出现的位置。我们创建了包含重复元素的字符串数组,然后在下面的例子中搜索了不同的元素。
// array containing the different values
let string_arr: Array<string> = [
"Hi!",
"Hello",
"Hi!",
"Hello",
"Hi!",
"Hello",
"TutorialsPoint",
"Hello",
];
// using the lastIndexOf() method with the array to search for particular elements
console.log(
"The last index of the hello in the array is " +
string_arr.lastIndexOf("Hello")
);
console.log(
"The last index of the Hi! in the array is " + string_arr.lastIndexOf("Hi!")
);
console.log(
"The last index of the user in the array is " + string_arr.lastIndexOf("user")
);
编译时,它将生成以下JavaScript代码。
// array containing the different values
var string_arr = [
"Hi!",
"Hello",
"Hi!",
"Hello",
"Hi!",
"Hello",
"TutorialsPoint",
"Hello",
];
// using the lastIndexOf() method with the array to search for particular elements
console.log("The last index of the hello in the array is " +
string_arr.lastIndexOf("Hello"));
console.log("The last index of the Hi! in the array is " + string_arr.lastIndexOf("Hi!"));
console.log("The last index of the user in the array is " + string_arr.lastIndexOf("user"));
输出
上述代码将产生以下输出 —
The last index of the hello in the array is 7
The last index of the Hi! in the array is 4
The last index of the user in the array is -1
我们学习了自定义算法来寻找数组中最后出现的元素。自定义算法只是为了学习,用户可以使用lastIndexOf()方法来实现同样的输出。