qq_易驰_0
2017-06-06 18:00
var arr=['*','##',"***","&&","****","##*"];
arr[7]="**";
//显示数组长度
for(var i=0;i<arr.length;i++){
var newarr = arr[i].split('');
for(var j=0;j<arr[i].length;j++){
if(newarr[j] != '*'){
arr[i]=null;
break;
}
}
}
function swap(a,b){
var temp;
temp=a;
a=b;
b=temp;
}
for(var k=0;k<arr.length;k++){
for(var l=k; l<arr.length; l++){
if(arr[k].length!=0 && arr[k].length>arr[l].length && arr[l].length!=0 ){
swap(arr[k],arr[l]);
}
}
}
for(var m=0;m<arr.length;m++){
if(arr[m].length != 0){
document.write(arr[m] + '<br />')
}
}
//将数组内容输出,完成达到的效果。
问题在于arr并不是全部有值得,arr[6]是undefined,for循环到arr[6]的时候就会报错,因为undefined没有split这个方法
var arr=['*','##',"***","&&","****","##*"];
arr[7]="**";
//显示数组长度
for(var i=0;i<arr.length;i++){
if(!arr[i]){ arr[i]='0' }; // 如果arr[i]为空(undefined),就给它补个'0'
var newarr = arr[i].split('');
for(var j=0;j<arr[i].length;j++){ //判断如果arr[i]中含有‘*'以外的符号,则将它赋为‘0’
if(newarr[j] != '*'){
arr[i]='0';
break;
}
}
}
function st(a,b){
return a.length-b.length;
}
arr.sort(st); //排序
for(var m=0;m<arr.length;m++){ //输出排序好后不是‘0’的所有项
if(arr[m] != 0){
document.write(arr[m]+'<br />')
}
}
<!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]="**"; //显示数组长度 var dataArr=[] arr.forEach(function(item,index) { if(index%2==0) { dataArr.push(item);//把arr里面的*提取出来,这个方法只会执行到arr[5], } }) console.log(dataArr); dataArr.push(arr[7]);//添加最后一个,这时候就只剩下排序了 function sortArr(a,b) { return(a.length-b.length); } dataArr.sort(sortArr); for(var m=0;m<dataArr.length;m++){ if(dataArr[m].length != 0){ document.write(dataArr[m] + '<br />') } } //将数组内容输出,完成达到的效果。 </script> </head> <body> </body> </html>
你可以看看我之前写的,如果看不懂,也没关系的,继续往后面学,过一段时间再回来看就行
这个题目
你想要这组代码输出什么?
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题