上图代码,commentsConfig是一个外部定义的js文件暴露出的对象,comments是这个对象中的数组,如下图
我要做一个数组每次从中随机抽取5条的操作。可是每次刷新页面后如上图所示,数据源的数据已经被更改了。
如果把comments数组数据写死在这,每次刷新就仍是30条,不会出现上述问题。
请问该如何解决引用外部js暴露出的数据?
上图代码,commentsConfig是一个外部定义的js文件暴露出的对象,comments是这个对象中的数组,如下图
我要做一个数组每次从中随机抽取5条的操作。可是每次刷新页面后如上图所示,数据源的数据已经被更改了。
如果把comments数组数据写死在这,每次刷新就仍是30条,不会出现上述问题。
请问该如何解决引用外部js暴露出的数据?
var a = [1,2,3];
var b = a; // b 指向的是原始数组 a
b.splice(1,1); // splice 方法是直接修改原始数组后返回,而不是返回一个新的数组
console.log(a); // 所以原始数组 a 会被修改
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
有解决方法,但不知道为什么会出现这种情况。希望大神提点一下。
解决方法: var comments = commentsConfig.heart.slice();
slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。