我在stackoverflow中遇到了很多问题,但似乎没有人帮助我。我知道有很多像这样的帖子,但我需要帮助。
我正在尝试将表的列添加到数组中,然后我尝试删除重复的元素。 This 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"));
我使用的表格在这里很大,你最好从jsfiddle看到它。
注意:我使用了许多函数作为其他问题的答案,似乎没有一个对我有用。我最后编写了自己的函数,它在基于字符串的数组上工作正常,但它仍然无法使用选中的基于html元素的数组完成工作。
答案 0 :(得分:1)
该函数在days2数组上运行正常,但在天数组
上没有
是的,因为元素列表中没有重复项。可能有一些文本具有相同的文本,但它们是不同的节点,并且与==
运算符不相等。您需要更改
if(array[i] == array[j])
到
if($(array[i]).text() == $(array[j]).text())
顺便说一下,你的splice
从数组中删除了一个元素,以便所有的indizes都会发生变化。然而,通过转到下一个索引,您将跳过一个项目。使用array.splice(j--,1);