我在Angular服务中嵌套的for循环遇到最奇怪的问题。我有一个服务,其中正在运行以下d[c( rbind(row.names(d)[c(FALSE, TRUE)],
row.names(d)[c(TRUE, FALSE)])),, drop = FALSE]
# [,1]
#a1 -0.43704092
#a 0.41215035
#e 1.47443155
#d -1.78087570
#f2 -0.01673482
#f 0.98952497
函数,并且数据从该服务返回。
forEach
someArr.forEach(elem => {
//do something with elem
if(elem['users'].length >= 1) {
for (let user of elem['users']) {
console.log('>>> ', user['firstName'])
elem['userFirstName'] = user['firstName'];
elem['userLastName'] = user['lastName'];
this.tempArr.push(elem);
}
} else {
this.tempArr.push(elem);
}
})
正在从内部for循环中注销正确的名字和姓氏,但是只有最后一个值才被推送到console.log
。我认为使用 let 一词可以解决此关闭问题。我在这里想念什么?
答案 0 :(得分:1)
当您使用input.replace(/\"/g, "")
来创建一个新的对象时,您并不是在推送一个新对象,而是对您随后变异的那个对象的另一个引用。