JavaScript数组倒序函数reverse()
左边为原数组,右边为array.reverse()的结果:


函数很简单,但是
var temp = ChartConfig.getMonthData();
$scope.monthList = temp.reverse();
console.log('ChartConfig.getMonthData() '+ChartConfig.getMonthData());
console.log('$scope.monthList '+$scope.monthList);
这段代码在反复运行时,却出现了问题,结果如下:

temp做的倒序运算,却改变了原数据,可以猜测是引用传递而不是值传递
再把函数中的原数据打印看看:
            getMonthData: function () {
                console.log("函数中原数据                         "+scope.chartConfig.xAxis.categories);
                return scope.chartConfig.xAxis.categories;
            }
两次运行结果:

可见,在赋值后,每次调用reverse都会重新复制,而且能改变原数组元素。
要想多次运行得到一样的排列顺序,必须在某一地方打断引用传递,具体怎么做还没想到
JavaScript数组倒序函数reverse()的更多相关文章
- JavaScript 数组操作函数--转载+格式整理
		
JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...
 - Javascript数组操作函数总结
		
(1) shift 删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4, ...
 - JavaScript数组操作函数
		
A: 购物车会有这样的情况,购物车是一个数组,每一个商品是一个对象,分别对应一个id,和一个num ,然后改变商品的时候需要和购物车对比,如果购物车中有这个商品的话,就只改变这个商品对应的id的num ...
 - Javascript数组与函数初识
		
1 - 数组 1.1 数组的概念 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式. 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素.数组是一种将一组数 ...
 - JavaScript数组和函数的使用
		
数组 数组:一个有顺序,有长度的数据集合 作用:存储大量数据 一.数组的定义 1.构造函数法:使用构造函数法的时候,都会使用new关键字 var arr=new Array(): 当长度为0 的时候, ...
 - JavaScript中常见的数组操作函数及用法
		
JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...
 - Javascript数组函数库
		
其实平时用的比较多的应该是push和pop,不过还是都记下来,以便后面使用. shift :删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4 ...
 - 读《JavaScript权威指南》笔记(四)--数组、函数
		
一.数组 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引.JavaScript数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有 ...
 - javascript中的所有内容都是一个对象:字符串、值、数组、函数…
		
javascript中的所有内容都是一个对象:字符串.值.数组.函数…此外,javascript允许自定义对象.javascript对象JavaScript提供多个内置对象,如字符串.日期.数组等.对 ...
 
随机推荐
- SQLSERVER 2014 内存优化表相关
			
更新了SP2的补丁能够解决 不能收缩日志文件的bug了. 但是因为已经不用内存优化表了, 所以想着能够删除内存优化表的file group 但是发现 很难删除 先说结论: 以下是针对内存优化文件组的 ...
 - cmd常用
			
npm install -g npm npm就自动为我们更新到最新版本 npm install -g cnpm --registry=https://registry.npm ...
 - Java代码redis基础操作
			
maven依赖包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
 - appium使用错误集合
			
原因:没有加载该文件 解决方案: cmd 使用:adb shell uiautomator dump 在cmd生成 然后就可以获取元素了 使用send_keys()输入报错 selenium.c ...
 - Nginx FIND_CONFIG阶段
			
Location 指令 syntax : location [=|~|~*|^~] uri {...} @name {....} default: -- context: server,locati ...
 - BZOJ4517[Scoi2016]美味——主席树
			
题目描述 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 bi,而他的偏好值为 xi .因此,第 i 位顾客认为 ...
 - Cookie 类
			
最近项目中用到cookie,所以就写了个cookie帮助类 public class CookHelper { HttpResponseBase Response = null; HttpReques ...
 - 配置远程jupyter notebook
			
在远程服务器上启动jupyter notebook,然后在本地进行访问.本文使用最简单的一种方法,无需设置密码,所以这种方法也是最不安全的方法,慎用. 1. 在远程服务器上生成jupyter note ...
 - 洛谷 P4408 逃学的小孩 解题报告
			
P4408 [NOI2003]逃学的小孩 题目描述 Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:"喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?&q ...
 - Android Fragment和FragmentActivity区别和用法
			
Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用 ...