遇到for循环push对象得到新数组的情况时,应该在push里面写对象,不应该先对对象赋值再push,否则会导致得到新数组中的所有对象的全是最后一个对象的值。
错误情况:
let arr = [];
let obj = {
name1: '',
name2: '',
name3: ''
for (let i = 0; i < list.length; i++){
obj.name1 = list[i].name1,
obj.name2 = list[i].name2,
obj.name3 = list[i].name3
arr.push(obj)
正确情况:
let arr = [];
let obj = {
name1: '',
name2: '',
name3: ''
for (let i = 0; i < list.length; i++){
arr.push({
obj.name1 = list[i].name1,
obj.name2 = list[i].name2,
obj.name3 = list[i].name3
来源 |https://www.javascripttutorial.net/翻译 | 杨小爱在今天的教程中,我们将学习如何使用 JavaScript Array push()方法将一个或多个元素添加到数组的末尾。JavaScript Array push() 方法介绍Array.prototype.push()方法将一个或多个元素添加到数组的末尾并返回新数组的长度。下...
中的最后一个元素,如果不是最后一个元素,则显示。,如果不是最后一个元素,则显示。数组的最后一个元素的索引。中的元素是否是最后一个。在Vue中,可以使用。
W3C官网学习最新的ES6
M是 Model 层,V是视图层 ViewModel是View和Model层的桥梁,model数据会绑定到viewModel层并自动将数据渲染到View视图中,视图变化的时候会通知viewModel层更新数据。
防抖和节流:
防抖:就是一定时间内,只会执行最后一次任务;
频繁操作点赞和取消点赞,因此需要获取最后一次操作结果并发送给服务器
节流:就是一定时间内,只执行一次
鼠标不断点击触发,mousedown(单位时间内只触发一次)
原理: 当render树的一部
解决办法,直接上代码:
for (let x = 0; x < this.ansNum; x++) {
let copyAnswer = JSON.parse(JSON.stringify(answer));
使用List集合的add方法时,添加的所有元素都变成了最后一个添加的元素,原因:添加的是对象元素,List中记录的是地址值。解决方案:把对象创建放在for循环里面。
解决方法:当我插入数据时,插入的都是同一个地址下的对象,当我修改这个对象的时候其实就是对该地址的对象进行修改,因为集合中的第一个元素也指向该地址,因此我对后续的元素进行操作时也会影响到前面的数据。我要向一个集合中加入一些数据,当我插入一个与前一个属性不同的对象时,前一个已经进入集合的数据也发生改变。