js把相同的编号删除,只留一个,怎么写

ianafollow 2015-01-20 04:53:10
有一组数组,里面存放的数据是TY20150112001
TY20150112002
TY20150112002
TY20150112006
TY20150112006
TY20150112006
TY20150112008
TY20150112009
TY20150112015
TY20150112015
TY20150112015
TY20150112016
TY20150112016
TY20150112016
TY20150112019
TY20150112020
TY20150112022
TY20150112023
TY20150112024
TY20150112025
TY20150112026
TY20150112027
TY20150112029
TY20150112029
TY20150112029
TY20150112030
TY20150112030
TY20150112030
TY20150112034
TY20150112034
TY20150112034
TY20150112035
TY20150112035
TY20150112035
TY20150112037
TY20150112038
TY20150112038,通过js操作要把里面相同的去掉,要留下一个,由于它们是连续二个相同或者连续三个相同,这个js编写出来后,能满足把相同的去掉,但是不管是连续二个相同还是连续三个相同,还是全部都 连续二个相同,都要适用。谢谢。
...全文
227 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2015-01-21
  • 打赏
  • 举报
回复
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <input type="button" value="删除重复行" onclick="xxxx();" />
    <table id="tb1" border="1">
        <tr>
            <td>TY20150112001</td>
        </tr>
        <tr>
            <td>TY20150112002</td>
        </tr>
        <tr>
            <td>TY20150112002</td>
        </tr>
        <tr>
            <td>TY20150112006</td>
        </tr>
        <tr>
            <td>TY20150112006</td>
        </tr>
        <tr>
            <td>TY20150112006</td>
        </tr>
        <tr>
            <td>TY20150112008</td>
        </tr>
        <tr>
            <td>TY20150112009</td>
        </tr>
        <tr>
            <td>TY20150112015</td>
        </tr>
        <tr>
            <td>TY20150112015</td>
        </tr>
        <tr>
            <td>TY20150112015</td>
        </tr>
        <tr>
            <td>TY20150112016</td>
        </tr>
        <tr>
            <td>TY20150112016</td>
        </tr>
        <tr>
            <td>TY20150112016</td>
        </tr>
        <tr>
            <td>TY20150112019</td>
        </tr>
        <tr>
            <td>TY20150112020</td>
        </tr>
        <tr>
            <td>TY20150112022</td>
        </tr>
        <tr>
            <td>TY20150112023</td>
        </tr>
        <tr>
            <td>TY20150112024</td>
        </tr>
        <tr>
            <td>TY20150112025</td>
        </tr>
        <tr>
            <td>TY20150112026</td>
        </tr>
        <tr>
            <td>TY20150112027</td>
        </tr>
        <tr>
            <td>TY20150112029</td>
        </tr>
        <tr>
            <td>TY20150112029</td>
        </tr>
        <tr>
            <td>TY20150112029</td>
        </tr>
        <tr>
            <td>TY20150112030</td>
        </tr>
        <tr>
            <td>TY20150112030</td>
        </tr>
        <tr>
            <td>TY20150112030</td>
        </tr>
        <tr>
            <td>TY20150112034</td>
        </tr>
        <tr>
            <td>TY20150112034</td>
        </tr>
        <tr>
            <td>TY20150112034</td>
        </tr>
        <tr>
            <td>TY20150112035</td>
        </tr>
        <tr>
            <td>TY20150112035</td>
        </tr>
        <tr>
            <td>TY20150112035</td>
        </tr>
        <tr>
            <td>TY20150112037</td>
        </tr>
        <tr>
            <td>TY20150112038</td>
        </tr>
        <tr>
            <td>TY20150112038</td>
        </tr>
    </table>
</body>
</html>
<script type="text/javascript">
    function xxxx() {
        var tb = document.getElementById('tb1');
        var l = tb.rows.length;
        var temp = tb.rows[l - 1].cells[0].innerText;
        for (var i = l-2; i >= 0; i--) {
            if (tb.rows[i].cells[0].innerText == temp) {
                tb.rows[i].parentNode.removeChild(tb.rows[i]);
            } else {
                temp = tb.rows[i].cells[0].innerText;
            }
        }
    }
</script>
ianafollow 2015-01-21
  • 打赏
  • 举报
回复
引用 8 楼 apollokk 的回复:
表格你就倒着循环
具体怎么弄啊
Hello World, 2015-01-21
  • 打赏
  • 举报
回复
表格你就倒着循环
ianafollow 2015-01-21
  • 打赏
  • 举报
回复
引用 6 楼 slwsss 的回复:
引用 3 楼 ianafollow 的回复:
和你怎么排序没有关系
其实是:这些数据在数据库中已经排好序了,并且赋在了表格中,每行赋一个值,现在想做的是,把相同的删掉,留下一行就行了,主要是操作表格。由于连续相同的有三个,也有二个,所有操作表格时不知道循环次数怎么控制,否则就会超出表格行数,我现在的做法是,当有相同的,就删掉,但是循环次数不好控制。
slwsss 2015-01-20
  • 打赏
  • 举报
回复
引用 3 楼 ianafollow 的回复:
和你怎么排序没有关系
Go 旅城通票 2015-01-20
  • 打赏
  • 举报
回复
正则。。前提是你相同的数据必须是连一起的,否则要排序下 http://ask.csdn.net/questions/161681

<textarea id="ta">TY20150112001
TY20150112002
TY20150112002
TY20150112006
TY20150112006
TY20150112006
TY20150112008
TY20150112009
TY20150112015
TY20150112015
TY20150112015
TY20150112016
TY20150112016
TY20150112016
TY20150112019
TY20150112020
TY20150112022
TY20150112023
TY20150112024
TY20150112025
TY20150112026
TY20150112027
TY20150112029
TY20150112029
TY20150112029
TY20150112030
TY20150112030
TY20150112030
TY20150112034
TY20150112034
TY20150112034
TY20150112035
TY20150112035
TY20150112035
TY20150112037
TY20150112038
TY20150112038</textarea>
<script>
    var ta=document.getElementById('ta'),arr =ta.value.replace(/\r/g,'').split('\n');
    var s=arr.join(',')+',';
    arr = s.replace(/(TY\d+,)\1+/g, '$1').replace(/,$/, '').split(',');
    ta.value = arr.join('\n');
</script>
Hello World, 2015-01-20
  • 打赏
  • 举报
回复
不就循环一次么?判断是否与前一个相同,不相同的就添加到新数组中,更新变量……
    var arr = ['TY20150112001', 'TY20150112002', 'TY20150112002', 'TY20150112006', 'TY20150112006', 'TY20150112006', 'TY20150112008', 'TY20150112009', 'TY20150112015', 'TY20150112015', 'TY20150112015', 'TY20150112016', 'TY20150112016', 'TY20150112016', 'TY20150112019', 'TY20150112020', 'TY20150112022', 'TY20150112023', 'TY20150112024', 'TY20150112025', 'TY20150112026', 'TY20150112027', 'TY20150112029', 'TY20150112029', 'TY20150112029', 'TY20150112030', 'TY20150112030', 'TY20150112030', 'TY20150112034', 'TY20150112034', 'TY20150112034', 'TY20150112035', 'TY20150112035', 'TY20150112035', 'TY20150112037', 'TY20150112038', 'TY20150112038'];
    var out = [];
    var temp = "";
    for (var i = 0; i < arr.length; i++) {
        if (temp != arr[i]) {
            temp = arr[i];
            out.push(temp);
        }
    }
    alert(out);
ianafollow 2015-01-20
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
var a=[1,1,2,1,2,1,3,3,1,2,2]; var d={}; for(var i=0;i<a.length;i++)d[a[i]]=1; var r=[]; for(var i in d)r.push(i); alert(r)
我的这个是排好序的,相同的只会放在一起,而不是前面有,后面也有。
ianafollow 2015-01-20
  • 打赏
  • 举报
回复
主要是循环次数不知如何写
slwsss 2015-01-20
  • 打赏
  • 举报
回复
var a=[1,1,2,1,2,1,3,3,1,2,2]; var d={}; for(var i=0;i<a.length;i++)d[a[i]]=1; var r=[]; for(var i in d)r.push(i); alert(r)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧