从大数组中删除重复的字符串

时间:2018-07-25 12:59:49

标签: javascript

如何从10.000个元素的字符串数组中删除重复项?

我有以下格式的字符串数组:

[ '[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0], 
[0,0,0,1,1,1,1,1,1],[0,0,0,1,1,1,1,1,1],[0,0,0,1,1,1,1,1,1], 
[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0]]',
'[[0,0,0,1,1,1,1,1,1],[0,0,0,1,1,1,1,1,1],[0,0,0,1,1,1,1,1,1], 
[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0], 
[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0],[0,0,0,1,1,1,0,0,0]]', ....]

其中有10.000个元素,删除重复项后应该是500个。目前我正在使用此代码,但是由于“致命错误:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足”问题而无法使用正在弹出。

newarr = [];

for(var i = 0; i<arr.length; i++){
  var idx = arr.indexOf(arr[i])
  while (idx != 0) {
    newarr.push(idx);
    idx = arr.indexOf(wycinki[i], idx + 1);
  }    
}

1 个答案:

答案 0 :(得分:5)

可以使用Java Set class.

的单行代码
Array.from(new Set(arr));

此代码将返回所有唯一字符串的数组。