问答详情
源自:4-10 编程练习

解决方式,欢迎批评指正

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>流程控制语句</title>

<script type="text/javascript">


 var myarr=new Array(['小A','女',21,'大一'],['小B','男',23,'大三'],['小C','男',24,'大四'],['小I','女',20,'大一'],['小F','男',21,'大一'])

for(var i=0;i<myarr.length;i++){

    if(myarr[i][3]=='大一'){//首先判断年级是否为大一

       for(var j=0;j<myarr[0].length;j++){

           if(myarr[i][j]=='女')//第二次,从查询出的大一的信息中再判断是否为女

           document.write(myarr[i][0]);//打印姓名

       }

    }


}

</script>

</head>

<body>

</body>

</html>


提问者:慕沐8212384 2020-12-21 16:47

个回答

  • 秋水黑刀
    2021-01-27 03:04:03

    两个错误,

    第一个,二维数组声明的时候,不用new Array,直接 var myarr = 【【】,【】】

    而且人家给你定义好了infos的变量名,你不用,你这样你以后的开发经理会把你菊花按在地上摩擦。

    第二个,你为啥又套了个循环,你直接进来判断符合大一的第性别为女不就好了?

    放那么多循环,你没学过时间复杂度吗???你这程序算法big O 复杂度都爆炸

  • eric_wy
    2020-12-22 17:52:43

    其实 myarr[i][1]=='女'  就好了,不用再套循环了,length 可以提取出来,减少计算,因为长度不变了