首页 新闻 会员 周边

一段javaScript 代码 请求讲解数组部分

1
悬赏园豆:20 [已解决问题] 解决于 2016-07-29 12:22

 //第一步把之前的数据写成一个数组的形式,定义变量为 infos
 var info = [['小A','女',21,'大一'],  ['小B','男',23,'大三'],
    ['小C','男',24,'大四'],  ['小D','女',21,'大一'],
    ['小E','女',22,'大四'],  ['小F','男',21,'大一'],
    ['小G','女',22,'大二'],  ['小H','女',20,'大三'],
    ['小I','女',20,'大一'],  ['小J','男',20,'大三']];
 var num = 0,key = 0;
 var infos = new Array();
 for(var i=0;i<5;i++){
     infos[i] = new Array();
     for(var j=0;j<2;j++){
         infos[i][j] = info[num];
         num++;
         if(infos[i][j][3] == "大一"){
             document.write(infos[i][j]);
             document.write("<br />");
             info[key] = infos[i][j];
             key++;
         }
    }       
 }
 document.write("<br/>第二次筛选:<br />")
 for(var q = 0;q < key;q++){
     if(info[q][1] == "女"){
         document.write(info[q]);
         document.write("<br />");
     }
 }

李成龙1991的主页 李成龙1991 | 初学一级 | 园豆:79
提问于:2016-06-14 00:03
< >
分享
最佳答案
0

新建一个数组 infos  然后循环  infos[i]  也定义成一个数组  然后在循环   将info[num]  的值 赋给  infos[i][j]  这个二维数组  然后num 的 递增  在判断   infos[i][j][3]  也就数组  “大一”“大二”  这个位置的值 是不是和“大一”相等  相等则输出  值 和换行符  然后再将 这个值info[i][j]  复制给 infos[key]  key  递增

收获园豆:10
console_小菜 | 菜鸟二级 |园豆:212 | 2016-06-14 10:35
其他回答(1)
0

把原始数据分成一个二维数组,array[5][2]正好可以放下10个,然后将里面是大一的装到原始数组里。

不建议这么写。破坏了原有数据。

function filter(array,fn){

  var result = [];

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

    if(fn(array[i])){

      result.push(array[i])

    }

  }

  return result;

}

var result = filter(info,function(item){ return item[3]=="大一" && item[1]=="女"})

收获园豆:10
长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-14 08:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册