Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript从文本/数组中删除重复项_Javascript - Fatal编程技术网

JavaScript从文本/数组中删除重复项

JavaScript从文本/数组中删除重复项,javascript,Javascript,我想删除基于重复关键字的文本行。文本是这样的 text1,abc,text2 text3,cde,text4 text5,abc,text6 text7,gfh,text8 text9,cde,text10 我想把它变成一个好东西 text1,abc,text2 text3,cde,text4 text7,gfh,text8 这样做的目的是将文本按行分割,并将其通过两个循环。然后比较这两个数组,它将从中删除重复项。如何做到这一点? 这是一个jsFoDLE,它将删除数据数组中间列中的重复项:

我想删除基于重复关键字的文本行。文本是这样的

text1,abc,text2
text3,cde,text4
text5,abc,text6
text7,gfh,text8
text9,cde,text10
我想把它变成一个好东西

text1,abc,text2
text3,cde,text4
text7,gfh,text8

这样做的目的是将文本按行分割,并将其通过两个循环。然后比较这两个数组,它将从中删除重复项。如何做到这一点?

这是一个jsFoDLE,它将删除数据数组中间列中的重复项:

首先对中间列进行排序,然后删除重复项。 代码是纯javascript,但使用jQuery显示结果。
(我更喜欢使用javaScript forEach而不是for循环,但并非所有浏览器都支持它,因此您需要一个polyfill。)

解决此问题的最佳方法是使用键值数组(键值对),并注意键值是唯一的,因此您将自动获得具有唯一值的新表。希望这对你有帮助

function RemoveDuplicate(table_data) {
      var listFinale = [], key_value = {};
      for (var i = 0; i < table_data.length; i++) {
        key_value[table_data[i]] = i;
      }
      for (var key in key_value) {
        listFinale.push(key);
      }
      return  listFinale.join(",");
    }
功能移除副本(表\u数据){
var listFinale=[],key_value={};
对于(变量i=0;i
可能重复的想法听起来不错,那么出了什么问题?你在哪里被卡住了?我写了一些代码但没用。它分割文本,开始比较,但做得不好。这不是与那个问题的重复。它是不同的。你没有指定一行被视为重复的标准-我不得不猜测。此外,您还没有展示到目前为止您所做的工作,以及为什么@DavidThomas linked的答案不充分。很好,但可以更好。我需要文本按行排序,并删除重复的行,而不是所有行都连接起来。@MacroScript-文本按删除重复的行排序。结果是一个删除了重复项的数组(我加入它们只是为了显示)。
function RemoveDuplicate(table_data) {
      var listFinale = [], key_value = {};
      for (var i = 0; i < table_data.length; i++) {
        key_value[table_data[i]] = i;
      }
      for (var key in key_value) {
        listFinale.push(key);
      }
      return  listFinale.join(",");
    }