js数组中的reverse()方法

reverse方法是将数组中的元素的顺序进行反转,在原数组上操作,然后返回原数组。由于本人是学习js的新人,对reverse函数进行了几个小实验,以下实验均在Chrome浏览器上运行

实验一:reverse方法能否用于undefined与null上

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var c=null;
 4             var d=undefined;
 5             //reverse方法测试代码
 6             console.log(c.reverse());//报错
 7             console.log(d.reverse());//报错
 8          }
 9          foo();
10 </script>

如果将代码改成如下所示:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var c=[null];
 4             var d=[undefined];
 5             //reverse方法测试代码
 6             console.log(c.reverse());//[null]
 7             console.log(d.reverse());[undefined]
 8          }
 9          foo();
10 </script>

结论:reverse方法不能再null与undefined上运行

实验二:空数组上运行reverse方法得出什么样的结果

实验代码如下:

1 var e=[];
2 console.log(e.reverse());//[]

结论:输出空数组

实验三:reverse方法返回数组本身相关实验

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var b=[false,undefined,null];
 4             //reverse方法测试代码
 5             var b_reverse_result=b.reverse();
 6             console.log(b);//[null,undefined,false]
 7             console.log(b_reverse_result);//[null,undefined,false]
 8          }
 9          foo();
10 </script>

结果分析:由于b数组执行reverse方法之后返回的是b数组元素反转之后的顺序,而b_reverse_result与b指向是同一个数组,所以二者输出结果都是b数组反转之后的结果。

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var b=[false,undefined,null];
 4             //reverse方法测试代码
 5             console.log(b.reverse());//[null, undefined, false]
 6             var b_reverse_result=b.reverse();
 7             console.log(b_reverse_result);//[false, undefined, null]
 8             console.log(b);//[false,undefined,null]
 9          }
10          foo();
11 </script>

结论:reverse方法在数组自身上操作,而且b与b_reverse_result确实代表了同一个数组。

时间: 2024-10-20 17:56:21

js数组中的reverse()方法的相关文章

简单谈谈JS数组中的indexOf方法

前言 相信说到 indexOf 大家并不陌生,判断字符串是否包涵子字符串时特别常用,正则不熟练同学的利器.这篇文章就最近遇到的一个问题,用实例再说说说indexOf方法.本文是小知识点积累,不作为深入讨论的话题,因此这里没有解释indexOf()的第二个参数,相信大家都知道第二个参数的作用. String 类型的使用 温习一下大家熟知的字符串用法,举个 ? 1 2 3 4 5 let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n');

获取JS数组中的相同元素的名称和数量

Js代码   <script> var ary =["aaa","露露","bbb","aaa","ccc","ccc","aaa","露露","haha"]; var res = []; ary.sort(); for(var i = 0;i<ary.length;) { var count = 0; for

统计js数组中奇数元素的个数

如何统计一个JS数组中奇数元素的个数呢? 这是群友提出的一个问题,大部分群友给出的是遍历 然后对2取模,得到最终结果. 这样的写法是最容易想得到的,那么有没有其他思路呢? 这里我提供另外一种思路,我们知道奇数其实就是以 1 3 5 7 9 作为末尾结尾的数字,那么只要统计这些数字出现的次数就够了,但是光这样统计容易误算,所以我们可以先用逗号拼接起来,连着逗号一起计算,由于js没有php那么方便的能用substr_count 函数统计字符串出现次数,所以我们直接采用正则替换,计算长度差得到个数,代

js 数组中sort方法存在的问题

chrome中测试sort方法 发现排序失效,查过资料发现,js数组的sort方法总会以第一个字符的ASCII值来进行比较排序 解决办法一:给sort方法指定一个比较函数作为参数,如下图 解决办法二:自己一个排序算法,自己造轮子 原文地址:https://www.cnblogs.com/xingguozhiming/p/8996700.html

JS实现循环删除数组中元素的方法介绍

这篇文章主要给大家介绍了关于Javascript循环删除数组中元素的几种方法,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面来看看详细的介绍: 发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利

js数组中的find、filter、forEach、map四个方法的详解和应用实例

1.find():返回通过测试的数组的第一个元素的值: 在第一次调用 callback 函数时会确定元素的索引范围,因此在 find 方法开始执行之后添加到数组的新元素将不会被 callback 函数访问到.如果数组中一个尚未被callback函数访问到的元素的值被callback函数所改变,那么当callback函数访问到它时,它的值是将是根据它在数组中的索引所访问到的当前值.被删除的元素仍旧会被访问到. 语法: array.find(function(value, index, arr),t

js数组中的常用方法总结

栈方法(后进先出) ArrayObj.push()方法 ArrayObj.pop()方法 ArrayObj.push():就是向数组末尾添加新的元素,返回的是数组新的长度.ArrayObj.pop():就是向数组中删除数组最后一个元素并且返回该元素.如果数组为空就返回undefined. 队列方法(先进先出) ArrayObj.shift() ArrayObj.unshift() ArrayObj.shift():方法用于把数组中的第一个元素删除,并返回第一个元素的值.如果数组是空的,则shif

学习笔记之三(数组中的一些方法)

这是我在自学过程中看到的一些方法,如果对你有帮助,万分荣幸 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>数组中的方法</title> </head> <body> </body> <script type="text/javascript"> /* * 1.concat()

js数组去重三种方法

本文讲述三种js去重方法 第一种方法思路: 1.构建一个新的数组存放结果2.for循环中每次从原数组中取出一个元素,查看元素是否在结果数组3.若结果数组中没有该元素,则存到结果数组中,否则跳入下次循环.代码如下: 1 Array.prototype.unique = function(){ 2 var res = [this[0]]; 3 for(var i = 1; i < this.length; i++){ 4 if(res.indexOf(this[i])>=0){ 5 continu