慕仙5237505
2017-10-21 16:45
我这个怎么输出没反应啊,麻烦各位帮我看看指错误在哪?然后告诉我正确的写法,输了都没有打印出来http://www.imooc.com/code/1484
任务:
第一步: 把这些数据组成一个数组,方便我们之后操作哦。
提示: 使用二维数组。
第二步: 筛选数据吧,首先找出都是大一的所有信息 ;
第三步: 最后再一次筛选上一步得到的数据,打印出都是女生的姓名 ;
提示: 可以用switch 或 if 语句进行筛选。
var infos = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
];
var len = infos.length;
for(var i=0; i<len; i++){
var f1 = infos[i];
for(var j=0; j<f1.length; j++){
if(f1[j]!='大一'){
infos.splice(i,1);
break;
}
}
}
switch(i in infos){
case '女':
document.write(info[0]);
default:
continue;
}
为啥搞那么复杂?
var info = [
['小A', '女', 21, '大一'],
['小B', '男', 23, '大三'],
['小C', '男', 24, '大四'],
['小D', '女', 21, '大一'],
['小E', '女', 22, '大四'],
['小F', '男', 21, '大一'],
['小G', '女', 22, '大二'],
['小H', '女', 20, '大三'],
['小I', '女', 20, '大一'],
['小J', '男', 20, '大三']
]
var res = []
info.forEach(function (item) {
if (item[1] === '女' && item[3] === '大一') {
res.push(item[0])
}
})
console.log(res)
这样不可以么?
因为你二维数组j从o开始遍历,当j=0时,因为第一列都是姓名的数据,全部不等于“大一”这个要求,执行删掉这个数组。所以你的数组被你全删光了数据,怎么会有输出呢
请问infos.splice(i,1);和switch(i in infos)的用意是?
<script type="text/javascript">
var infos = [ ['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(var i=0;i<10;i++){
if(infos[i][3]=='大一'){
document.write("大一学生为:"+infos[i][0]+"<br>");
}
}
//第一次筛选,找出都是大一的信息
for(var i=0;i<10;i++){
if(infos[i][1]=='女'){
document.write("其中女生为:"+infos[i][0]+"<br>");
}
}
//第二次筛选,找出都是女生的信息
</script>
JavaScript进阶篇
468743 学习 · 22132 问题
相似问题