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(",");
}