二十多岁的老王
2020-06-01 15:38
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var info = [
['A','女','21','大一'],
['B','男','23','大三'],
['C','男','24','大四'],
['D','女','21','大一'],
['E','女','22','大四'],
['F','男','21','大一'],
['G','男','22','大二'],
['F','女','20','大三'],
]
//第一次筛选,找出都是大一的信息
for (i = 0, i< info.length, i++){
if (info[i][3] == "大一") {
document.write(info[i])
}
}
//第二次筛选,找出都是女生的信息
for (i = 0, i< info.length, i++){
if (info[i][3] == "大一") {
if (info[i][1] == "男"){
document.write(info[i])
}
}
}
</script>
</head>
<body>
</body>
</html>
逻辑没错,for写错了里面是‘;’
优化下,你可以直接把第一次筛选后的数据放进一个数组,第二次直接筛选新数组比较好
var dayi=[];
在document.write(info[i]);下再加一行
dayi.push(info[i]);
不是大佬,互相交流
不是我说,先学JAVA再学python会好很多
var aa = info.filter(item => item[3] =='大一' && item[1] =='女')
for(let i=0;i<aa.length;i++){
document.write(aa[i][0])
}
已老夫30年编程经验,3行代码搞定你这个需求
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos =[
['小A','女',21,'大一'],['小B','男',23,'大三'],
['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三']
]
// document.write(infos)
//第一次筛选,找出都是大一的信息
var info_first = new Array()
for(let i = 0 ;i<infos.length;i++){
if(infos[i][3] == '大一'){
info_first.push(infos[i]+"<br>")
}
}
document.write(info_first+'<br>')
//第二次筛选,找出都是女生的信息
var info_second = new Array()
for(let j = 0;j<infos.length;j++){
if(infos[j][1] == '女' && infos[j][3]=='大一'){
info_second.push(infos[j]+"<br>")
}
}
document.write(info_second)
</script>
第二个循环条件用“&&”来判断更合适吧
写python写习惯了,我真不喜欢js这种语法,我卡卡
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>筛选数据</title>
<script>
var infos = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']];
//第一次筛选,找出都是大一的信息
//switch写法
for(i = 0 ;i < infos.length ; i++){
switch(infos[i][3]){
case '大一':
document.write('大一的学生有:'+infos[i]+'<br>');
break;
}
};
document.write('<hr>')
//if写法
for(i = 0;i<infos.length;i++){
for(j=0;j<infos[i][j].length;j++){
if(infos[i][3]=='大一'){
document.write('大一的学生有:'+infos[i]+'<br>')
}
}
};
document.write('<hr>')
//第二次筛选上一步得到的数据,找出都是女生的信息
for(i = 0 ;i < infos.length ; i++){
for(j = 0 ;j < infos[i][j].length ; j++){
if(infos[i][3] == '大一'&& infos[i][1]== '女'){
document.write('大一学生中的女生有:'+infos[i]+'<br>')
}
}
};
</script>
</head>
<body>
</body>
</html>
不说别的,最下面为什么是男。
for (i = 0, i< info.length, i++),这个里面应该是" ; "不是" , "
你没试着运行一下吗?
运行不出来,那就代表有问题的。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题