题目:A为首,F结尾截取数组
var list1 = ['A', 'B', 'C', 'D', 'F', 'A', 'B', 'C', 'E', 'D', 'F', 'A', 'B', 'D', 'F', 'A', 'C', 'B', 'D', 'F', 'A', 'C', 'D', 'F', 'A', 'C', 'E', 'D', 'F']
var list2 = []
var arr = []
for (var i of list1) {
if (i == 'A') {
arr = []
}
else if (i == 'F') {
list2.push(arr)
// arr此时不包含F
}
// 添加F 但是为什么会改变list2里面的arr呢?
arr.push(i)
}
console.log(list2)
疑惑: else if (i == 'F') {
list2.push(arr)
// arr此时不包含F
}
这个时候的arr是不包含的F的,已经push到了list2,为什么结果集却包含了F? 下面的arr.push(i) 理应不会改变list2里面的数组,带着疑问我又做了测试
var list1 = ['A', 'B']
var arr=[]
list1.forEach(val=>{
arr.push(val)
})
list1.push('G')
console.log(list1);//arr里面并未加入G,为什么上面的F会在原数组改变的时候又加进去呢?