Javascript TypeScript:空数组是用值初始化的,不能更改这些值

Javascript TypeScript:空数组是用值初始化的,不能更改这些值,javascript,arrays,typescript,react-typescript,Javascript,Arrays,Typescript,React Typescript,现在,这可能只是我不知道TypeScript如何工作的一些基本知识,因为我对它非常缺乏经验,但是我所有试图找到解决这个问题的方法都失败了 在我的一个函数中,我试图获得两个布尔数组的逐项析取。然而,当我初始化一个空数组以填充新值时,会发生一些奇怪的事情 let res = new Array<boolean>(); console.log(res) 然后,该函数返回一个新的布尔数组,并将其推入数组数组中。当我记录这个数组时,它描述的不是函数填充的值数组,而是初始化时放在那里的那些奇

现在,这可能只是我不知道TypeScript如何工作的一些基本知识,因为我对它非常缺乏经验,但是我所有试图找到解决这个问题的方法都失败了

在我的一个函数中,我试图获得两个布尔数组的逐项析取。然而,当我初始化一个空数组以填充新值时,会发生一些奇怪的事情

let res = new Array<boolean>();
console.log(res)

然后,该函数返回一个新的布尔数组,并将其推入数组数组中。当我记录这个数组时,它描述的不是函数填充的值数组,而是初始化时放在那里的那些奇怪的值。这似乎不会影响第一个数组(并且仅影响该数组)


正如我所说的,我可能会错过一些关于TS/JS中数组如何工作的关键信息。现在我有点迷路了,所以任何帮助都将不胜感激

原来只是我不知道开发控制台是如何工作的。数组的大数组在填充后会被过滤,因为console实时显示所有数组,所以过滤器会使它回顾性地将它们描述为充满错误。暂时删除过滤器证明了这一假设。

您能分享您的全部代码吗?请记住,
res
是对底层阵列的引用,您的开发工具通常会显示阵列的“实时”版本,而不仅仅是它在登录时的外观。我认为您只是了解了开发工具的工作方式。对象(包括数组)不会在console.log语句执行时进行计算,而是在单击它们时进行计算。因此,如果在这段时间内发生了变化,您将看到阵列在之后的状态。请发布@NicholasTower,您是对的!事实发生后,有一个filter()函数应用于这个数组,似乎所有的false都只是后来被这个过滤器丢弃的数组。非常感谢。
res.push(a[i] || b[i])
    console.log("disjunction at position " + i.toString())
    console.log(a[i])
    console.log(b[i])
    console.log(res[i])
    console.log(res)