未从大字符串数组填充Javascript集

未从大字符串数组填充Javascript集,javascript,set,Javascript,Set,我有一个由~6k个字符串元素组成的大型字符串数组。我知道集合可以在我的浏览器中工作,在较小的阵列上测试时也可以。当我尝试将大型数组转换为新的数组集时,它所做的只是返回一个空数组 我的数组最初是嵌套数组的一部分,尽管已经尝试了几种将其输入到集合中的方法。其中一些是: var input = Bigger_array[1]; var input = [...Bigger_array[1]]; var dummy = Bigger_array[1]; var input = [...dummy];

我有一个由~6k个字符串元素组成的大型字符串数组。我知道集合可以在我的浏览器中工作,在较小的阵列上测试时也可以。当我尝试将大型数组转换为新的数组集时,它所做的只是返回一个空数组

我的数组最初是嵌套数组的一部分,尽管已经尝试了几种将其输入到集合中的方法。其中一些是:

var input = Bigger_array[1];

var input = [...Bigger_array[1]];

var dummy = Bigger_array[1];
var input = [...dummy];
此外,还尝试了创建集合的不同方法:

var s = new Set(input);

var s = new Set();
for (var j = 0; j < input.length; j++) {
     s.add(input[i]);
}
根据要求,为较小的阵列提供一个工作小提琴:
biger_数组=[['a'、'b'、'c']、['a'、'b'、'c']]
变量输入=[…更大的数组[1]];
var s=新集合();
对于(var j=0;j//等等控制台可能会捉弄你。它有自己的表示数据的方法,这与JavaScript
toString
方法不同。它可以剪辑数据,甚至根本不显示数据。其他时候,它会延迟输出,这也会导致误导性输出

要确认您的
设置是否正常,请输出其大小:

console.log(s.size);
或者,您可以将其转换回数组:

console.log([...s]);

显然,一些JS引擎无法正确设置
console.log()
映射
对象,相反,您只会收到一个空的对象,如
{}
。不要上当受骗。我相信这是关于Set构造函数的
toString()
方法的。更多信息如下。

如果根据当前会话,您有一个很大的数组,则Spread operator将失败。请勿将排列与长度大于150K的阵列一起使用。。在第二段代码中,您应该说
s.add(input[j])虽然。你能提供一个小提琴显示你的问题吗?相同的代码是否在较小的阵列上进行过测试?@Redu感谢您的提醒。我使用它只是希望它可能与数组的引用有关(从而创建一个新的数组)。
var input=biger_array[1];var s=新设置(输入)您在控制台上尝试此操作,并查看设置是否已设置。只是一些JS引擎不会
console.log()
Set(甚至
Map
)对象。我猜这是由于构造函数的
toString()
方法或其他原因造成的。不久前我使用了.Output
s.size
,以确保您不会被控制台行为误导。
console.log([...s]);