用 JavaScript 编写一个反转数组的程序?
反转数组意味着我们反转数组中存在的元素的顺序,但不是数组本身。简单来说,第 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>
通过交换元素
使用交换方法,我们可以更改任何变量的值。您可以在下面看到语法。
语法
var temp = a; a = b; b = temp;
但在这里,我们将使用交换逻辑来更改数组索引值。
让我们借助程序来理解。
示例
在给定的程序中,我们使用 for 循环和交换方法来更改数组索引值,并且通过交换方法,我们可以更改任何变量的值。
<!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>
广告