如何检测数组是否是从迭代器(或数组传播)创建的

how to detect if array was created from iterator (or array spread)

假设我们有:

const foo = [1,2,3];
const bar = [1,...foo,3];

有没有办法从 bar 中知道它是从 foo 中包含的项目创建的?

我想使用 Proxy,但是 bar 是用扩展运算符初始化的,所以我们不能先代理 bar...

不,没有办法做到这一点。 bar 是一个普通数组,通过具有扩展语法的数组文字创建的数组、通过 concat 调用或在循环中从 pushing 创建的数组之间没有区别。