问: 怎么查找数组重复值?
- 答: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)
} - 答:先对数组进行排序(使用sort函数),此时姿雀重复值一定是相邻的
然后遍拍祥历排序后的数组迹贺早,检查相邻的项是否相等就行了
问:为什么相同的js代码,用js文件调用就出现变量未定义的问题?
- 答:因为对象还没有加载!
如:
<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
包含文件 - 答:因为对象还没有加载!
如:
<script>
k.
classname
="class";
</script>
这样k还没有加载脚本就运老昌行了当然找不到;
<script>
k.classname="class";
<侍则扒/script>
这样就可以了,或:
<script>
k.classname="class";
<盯歼/script>
调用同理,相当于PHP里的
include
包含文件
问:有哪些方法可以检测 对象存在属性重复
- 答:属性是不会重复的只有唯一的凳蚂属性名
不过有方法可以判断属性是否已经存在
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)