我有一个包含约 6k 个字符串元素的大型字符串数组。我知道集合在我的浏览器中工作并且在较小的阵列上测试时很好。当我尝试将大数组转换为新的 Set 时,它所做的只是返回一个空数组。
我的数组最初是嵌套数组的一部分,尽管已经尝试了几种将其输入集合的方法。其中一些是:
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]);
}
一切都无济于事:
set {}
根据要求为较小的数组提供工作 fiddle :
Bigger_array=[['a','b','c'],['a','b','c']]
var input = [...Bigger_array[1]];
var s = new Set();
for (var j = 0; j < input.length; j++) {
s.add(input[j]);
}
console.log(s);
///the original method
var input =Bigger_array[1]
var s = new Set(input);
console.log(s);
alert('viewing s in console presents correct values of set \n fiddle is being weird' )
//etc...
最佳答案
显然,一些 JS 引擎无法正确地 console.log()
Set
或 Map
对象,而您只会收到一个空洞的外观像 {}
这样的对象。不要被骗了。我相信这是关于 Set 构造函数的 toString()
方法。更多信息是 here .
关于Javascript Set 不从大字符串数组填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472659/