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>你可以看看我之前写的,如果看不懂,也没关系的,继续往后面学,过一段时间再回来看就行
这个题目
你想要这组代码输出什么?