编写一个程序来反转 JavaScript 中的数组?
javascriptobject oriented programmingprogramming
反转数组意味着我们正在反转数组中存在的元素的顺序,但不反转数组本身。简单来说,索引为 0 的元素将移至数组的最后一个索引,反之亦然。
本文中有多种方法可以在 JavaScript 中反转数组,我们将详细介绍这些方法 -
使用 reverse() 方法()
JavaScript 中的 reverse() 方法反转数组元素的顺序。数组中的第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换……依此类推。
语法
以下是此方法的语法 -
arr.reverse();
示例
在下面的程序中,我们对具有不同颜色的数组 color 使用 reverse() 方法,并将数组的反转元素打印为输出。
<!DOCTYPE html><html lang="en"><head> <title>Reverse Method</title> </head><body> <script> var color = ['Red','Black','Pink','Gray','Yellow']; var revarr = color.reverse(); document.write(color); </script> </body> </html>
使用 push() 方法
我们还可以使用 push() 方法在 JavaScript 中反转数组。为此,我们需要创建两个数组;其中一个数组包含一些值,另一个数组留空。
语法
以下是此方法的语法 −
var arr1 = [value1,value2,value3,…..]; var arr2 = [];
使用 for 循环在最后一个索引处获取第一个数组值。
for(let i = arr.length-1; i>=0; i--) arr.push(arr[i])
您可以通过以下程序更好地理解 −
示例
<!DOCTYPE html> <html lang="en"> <head> <title>Reverse Array</title> </head> <body> <script> var arr = [1,2,3,4,5]; var revarr = []; let i; for(i = arr.length-1; i>=0; i--){ revarr.push(arr[i]); } for(let i = 0; i<revarr.length; i++){ document.write(revarr[i] + " "); } </script> </body> </html>
通过交换元素
使用 swap 方法,我们可以更改任何变量的值。您可以在下面看到语法。
语法
var temp = a; a = b; b = temp;
但在这里我们将使用 swap 逻辑来更改数组索引值。
让我们借助程序来理解。
示例
在给定的程序中,我们使用 for 循环和 swapping 方法来更改数组索引值,通过 swapping 方法,我们可以更改任何变量的值。
<!DOCTYPE html> <html lang="en"> <head> <title>Reverse Array</title> </head> <body> <script> var arr = [1,2,3,4,5]; var r; var len = arr.length; document.write("Original array: "); for(let i = 0; i<arr.length; i++){ document.write(arr[i] + " "); } for(let i = 0; i<len/2; i++){ r = arr[i]; arr[i] = arr[len-i-1]; arr[len-i-1] = r; } document.write("<br>After reverse array: "); for(let i = 0; i<len; i++){ document.write(arr[i] + " "); console.log(arr[i]); } </script> </body> </html>
使用 for 循环
我们可以使用 for 循环和一些基本逻辑来获取最后一个索引处的数组值。
示例
正如您在下面的程序中看到的,我们使用 for 循环来获取所有数组元素的值,并且在 for 循环内部,我们反转数组。
<!DOCTYPE html> <html lang="en"> <head> <title>Reverse Array</title> </head> <body> <script> var arr = [1,2,3,4,5]; var len = arr.length; document.write("Original array:"); for(let i = 0; i<len; i++) { document.write(arr[i] + " "); } document.write("<br>Reverse array : "); for(let i = len-1; i>=0; i--){ document.write(arr[i] + " ") } </script> </body> </html>