<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数组</title>
<script type="text/javascript">
//创建数组
var arr = ["*","##","***","&&","****","##*"];
arr[7]="**";
//显示数组长度
//alert(arr.length);
//将数组内容输出,完成达到的效果。
/*
for(var i=0;i<arr.length-1;i++){
if(i%2==0 && i<6){
document.write(arr[i]+"<br/>");
if(i==0){
document.write(arr[7]+"<br/>");
}
}
}
*/
/*
以下为有问题的代码 问题:第一个for循环为何只输出了第一个元素值
*/
var myarr = new Array();
for(var i=0;i<arr.length;i++){
document.write(arr[i]+" kkk");
if(arr[i].match(new RegExp("^[*]{1,4}$")){
myarr.add(arr[i]);
}
if(arr[i]==undefined){
continue;
}
}
myarr.sort();
for(var j=0;j<myarr.length;j++){
document.write(myarr[j]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
for 循环要先判断不是undefined,最好这样写
for(var i=0;i<arr.length;i++){
document.write(arr[i]+" kkk");
if(arr[i]==undefined&&arr[i].match(new RegExp("^[*]{1,4}$"))){
myarr.add(arr[i]);
}
}
还有 你if 判断里面少了个括号 我开始连第一个都显示不出来 找半天
修改后显示为
* kkk## kkk*** kkk&& kkk**** kkk##* kkkundefined kkk
因为还没学正则 所以不太懂你代码意思,但是我觉得这个问题你自己应该能搞定