• 使用关联数组去掉重复那个的项!


    昨天尝试了使用关联数组找出出现次数最多的项,今天就反向思维去掉重复的项。

    昨天对关联数组的定义还是不是很清楚。今天看了看百科,算是明白了:

    关联数组和数组类似,由以名称作为键的字段和方法组成。

    它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。 
    关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。
    JavaScript的对象本质就是一个关联数组。
     

    先写一个简单的方法测试下

    var arr=['b','b','c','a','b','c','d','e','d'];
    var obj={};
    for(var i=0;i<arr.length;i++)
    {
        var key=arr[i];
            
        if(!obj[key])
        {
        obj[key]=1;
        }
        else 
        {
            arr.splice(i,1);
        }
        
    }
    document.write(arr);

    splice()方法,温习下就是i是位置,1是个数,另外后面还可以加个'xxx'替换那个位置的项。

    输出结果:

    b,c,a,c,d,e 

    下面做个伪报名系统练练手

    HTML部分,搓搓的

    姓名:<input name="person"/>
    <button id="btnSubmit">报名</button>
    <button id="btnMenu">名单</button>
    <div id="divShow"></div>

    下面编写JS

    var _person=document.getElementsByName("person")[0];
    var btnSubmit=document.getElementById("btnSubmit");
    var btnMenu=document.getElementById("btnMenu");
    var divShow=document.getElementById("divShow");
    var arr=[];
    var obj={};
    btnSubmit.onclick=function()
    {
            var key=_person.value;
            if(key===null||key==="")
            {
                alert('请输入');
            }
            else{
            if(!obj[key])
            {
                obj[key]=1;
                arr.push(key);
                alert('报名成功');
            }
            else
            {
                alert('你已经报名过了');
            }
            }
    
    }
    btnMenu.onclick=function()
    {
        var str="";
        for(var i=0,l=arr.length;i<l;i++)
        {
            str+=arr[i]+" ";
        }
        divShow.innerHTML=str;
    }


    测试成功!

    经过今天和昨天觉得关联数组真是判断重复的好帮手啊,不过就不清楚这是不是最佳方法?有待以后继续研究。

  • 相关阅读:
    Symfony2 学习笔记之报错
    Symfony2学习笔记之数据校验
    Symfony2学习笔记之HTTP Cache
    Symfony2学习笔记之表单
    Symfony2 学习笔记之插件格式
    Symfony2学习笔记之数据库操作
    Symfony2 学习笔记之内部构件
    Symfony2 学习笔记之模板使用
    让VIEWSTATE从页面中完全消失(小技巧)
    打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒
  • 原文地址:https://www.cnblogs.com/pilee/p/3574944.html
Copyright © 2020-2023  润新知