<!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
因为还没学正则 所以不太懂你代码意思,但是我觉得这个问题你自己应该能搞定
<!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++){
if(arr[i]==undefined){
continue;
}
if(arr[i].match(new RegExp("^[*]{1,4}$"))){
myarr.push(arr[i]);
document.write(arr[i]+" ");
}
}
myarr.sort();
document.write("<br/>排序数组:<br/>");
for(var j=0;j<myarr.length;j++){
document.write(myarr[j]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
//这样就ok了,本意是使用正则将全是*的元素挑选出来放入一个新数组中,对新数组进行排序,然后输出;改了时候可以了,数组中添加元素的方法:push()在末尾添加;unshift()开头添加,还有一个splice()方法,不过没怎么用