js找不到重复定义的变量

问: 怎么查找数组重复值?
  1. 答:var arr = ["裤悄a"胡绝渣,"2","a","b"]
    var obj = {}
    for(var i=0;i<arr.length;i++)
    {
    var item = arr[i];
    if(obj[item]==null)obj[item] = 1;
    else obj[item] = obj[item]+1;
    }
    for(a in obj)
    {
    var item = obj[a];
    if(item>1)alert("宏世重复元素"+a)
    }
  2. 答:先对数组进行排序(使用sort函数),此时姿雀重复值一定是相邻的
    然后遍拍祥历排序后的数组迹贺早,检查相邻的项是否相等就行了
问:为什么相同的js代码,用js文件调用就出现变量未定义的问题?
  1. 答:因为对象还没有加载!
    如:
    <body>
    <script>
    k.classname="老昌class";
    </script>
    <div
    name="k"></div>
    </body>
    这侍则扒样k还没有加载脚本就运行了当然找不到;
    <body>
    <div
    name="k"></div>
    <script>
    k.classname="class";
    </script>
    </body>
    这样就可以了,或:
    <head>
    <script>
    k.classname="class";
    </script>
    </head>
    <body>
    <div
    name="k"></div>
    </body>
    调用同理,盯歼相当于PHP里的
    include
    包含文件
  2. 答:因为对象还没有加载!
    如:
    <script>
    k.
    classname
    ="class";
    </script>
    这样k还没有加载脚本就运老昌行了当然找不到;
    <script>
    k.classname="class";
    <侍则扒/script>
    这样就可以了,或:
    <script>
    k.classname="class";
    <盯歼/script>
    调用同理,相当于PHP里的
    include
    包含文件
问:有哪些方法可以检测 对象存在属性重复
  1. 答:属性是不会重复的只有唯一的凳蚂属性名
    不过有方法可以判断属性是否已经存在
    1.in,示例如下
    // 返回饥皮trueconsole.log("x"枣肢埋 in {x:1})2.hasOwnProperty方法,示例如下
    // 返回trueconsole.log(({x:1}).hasOwnProperty("x"))如果属性已经存在而继续对此属性赋值的话,会覆盖之前的值,例如:
    var s = {x:1};// 输出1console.log(s.x)s.x = 2;// 输出2console.log(s.x)

猜你喜欢