Javascript 消除从表中提取并插入到数组中的重复元素

Javascript 消除从表中提取并插入到数组中的重复元素,javascript,jquery,arrays,duplicates,Javascript,Jquery,Arrays,Duplicates,我在stackoverflow中问了很多问题,但似乎没有一个对我有帮助。我知道有很多类似的帖子,但我需要帮助 我尝试将一个表的列放入数组,然后尝试删除重复的元素。jsfiddle说明了这种情况。代码如下: //sorry for the language var days2 = ["Pazartesi", "Salı", "Pazartesi", "Çarşamba"]; var days = jQuery.makeArray($(".dersprg tr td:nth-child(6)"))

我在stackoverflow中问了很多问题,但似乎没有一个对我有帮助。我知道有很多类似的帖子,但我需要帮助

我尝试将一个表的列放入数组,然后尝试删除重复的元素。jsfiddle说明了这种情况。代码如下:

//sorry for the language 
var days2 = ["Pazartesi", "Salı", "Pazartesi", "Çarşamba"];
var days = jQuery.makeArray($(".dersprg tr td:nth-child(6)"));

//the function works just fine on days2 array, but not on days array
function eliminateRepeat(array){
  var i, j;
  for(i=0 ; i<array.length ; i++){
      for(j=i+1 ; j < array.length ; j++){
          if(array[i] == array[j])
              array.splice(j,1);
       }
  }
}
eliminateRepeat(days);
$(days).clone().appendTo(document.getElementById("test"));
//很抱歉使用这种语言
var days2=[“帕扎尔特西”、“萨尔什”、“帕扎尔特西”、“圣安巴”];
var days=jQuery.makeArray($(“.dersprg tr td:nth child(6)”);
//该函数在days2数组上运行正常,但在days数组上运行不正常
函数消除器重复(数组){
varⅠ,j;
对于(i=0;i
该函数在days2数组上运行正常,但在days数组上运行不正常

是的,因为元素列表中没有重复项。可能有一些具有相同的文本,但它们是不同的节点,不等于
=
运算符。您需要更改

if(array[i] == array[j])



顺便说一句,你的
splice
从数组中删除一个元素,这样所有的索引都会改变。但是,通过转到下一个索引,你将跳过一个项目。使用
array.splice(j--,1);

它做错了什么?我说不出来。我会说在for循环中修改数组的形式不好。实际上,当您首先构建数组时,检查重复项会更容易。您会如何从那样的表中执行@Rob?我真的不知道。是什么使它们成为不同的节点?什么属性不同?Tha顺便说一句,谢谢你的快速回答:)它们是两个不同的实例。它们可能有相同的标记,但它们不是相同的对象。谢谢。我不明白为什么它对示例不起作用:(我没有减少其中的大多数,但结果不是理想的。原始表源是在您需要的情况下提供的。如果您在数组中的一行中有两个以上的重复项,则拼接方法将失败。最好在消除函数中创建DistinctArray并返回它。
if($(array[i]).text() == $(array[j]).text())