为了账号安全,请及时绑定邮箱和手机立即绑定

请教,为什么要写var j=0和j=j+1呢?

  参考了一下答案,之前没写var j=0和j=j+1

var infos = 

 [

  ['小A','女',21,'大一'],

['小B','男',23,'大三'],

['小C','男',24,'大四'],

['小D','女',21,'大一'],

['小E','女',22,'大四'],

  ['小F','男',21,'大一'],

['小G','女',22,'大二'],

['小H','女',20,'大三'],

['小I','女',20,'大一'],

['小J','男',20,'大三']

  ];

var myarr=[];

var j=0

for(var i = 0, length1 = infos.length; i < length1; i++){

if(infos[i][3]=='大一'){

myarr[j]=infos[i];

j=j+1;

}

}

for(var j = 0, length2 = myarr.length; j < length2; j++){

if(myarr[j][1]=='女'){

document.write(myarr[j][0]);

}

}

请教,为什么要写var j=0和j=j+1呢?

正在回答

2 回答

声明j是用来往myarr中添加找到的符合标准的数据的,j=0时,找到一个,就把myarr[0]赋值为符合的数据,然后j+1变成1,又找到一个,myarr[1]为新找到的数据,依次类推...。到最后,myarr中存的都是符合条件的数据。再打印出来就行了。

0 回复 有任何疑惑可以回复我~
#1

秋挽词 提问者

啊哦,明白了,谢谢!
2016-12-20 回复 有任何疑惑可以回复我~
var infos = 
  [
	['小A','女',21,'大一'],
	['小B','男',23,'大三'],
	['小C','男',24,'大四'],
	['小D','女',21,'大一'],
	['小E','女',22,'大四'],
	['小F','男',21,'大一'],
	['小G','女',22,'大二'],
	['小H','女',20,'大三'],
	['小I','女',20,'大一'],
	['小J','男',20,'大三']
  ];
var myarr=[];
var j=0
for(var i = 0, length1 = infos.length; i < length1; i++){
	if(infos[i][3]=='大一'){
		myarr[j]=infos[i];
		j=j+1;
	}
}
for(var j = 0, length2 = myarr.length; j < length2; j++){
	if(myarr[j][1]=='女'){
	document.write(myarr[j][0]);
	}
}

代码顶格。真是个坏习惯。

你没明白代码逻辑吧。先把infos里面的大一的抓出来,丢进数组myarr里。

再把myarr里女的名字输出。myarr新下标可以动态添加数据。所以每加一个j++

如果只是为了输出大一女的名字,代码可简化为:

var infos = 
  [
	['小A','女',21,'大一'],
	['小B','男',23,'大三'],
	['小C','男',24,'大四'],
	['小D','女',21,'大一'],
	['小E','女',22,'大四'],
	['小F','男',21,'大一'],
	['小G','女',22,'大二'],
	['小H','女',20,'大三'],
	['小I','女',20,'大一'],
	['小J','男',20,'大三']
  ];
for(var i = 0, length1 = infos.length; i < length1; i++){
	if(infos[i][3]=='大一'&&infos[i][1]=='女'){
		document.write(infos[i][0]);
	}
}

如有问题请指正。

0 回复 有任何疑惑可以回复我~
#1

秋挽词 提问者

没毛病,多谢!!
2016-12-20 回复 有任何疑惑可以回复我~
#2

CYD_IMC 回复 秋挽词 提问者

这种不建议用多维数组,json格式可能会更好。具体你可百度下,这个课程貌似没讲到json。
2016-12-20 回复 有任何疑惑可以回复我~
#3

秋挽词 提问者 回复 CYD_IMC

额..我这刚开始学,云里雾里的..
2016-12-20 回复 有任何疑惑可以回复我~
#4

CYD_IMC 回复 秋挽词 提问者

慢慢来,加油!O(∩_∩)O
2016-12-20 回复 有任何疑惑可以回复我~
查看1条回复

 //第一步把之前的数据写成一个数组的形式,定义变量为 infos

 var studentInfoArray = [['小A','女',21,'大一'],

 ['小B','男',23,'大三'],['小C','男',24,'大四'],

 ['小D','女',21,'大一'],['小E','女',22,'大四'],

 ['小F','男',21,'大一'],['小G','女',22,'大二'],

 ['小H','女',20,'大三'],['小I','女',20,'大一'],

 ['小J','男',20,'大三']];

 var femaleArr = new Array(0);

 //第一次筛选,找出都是大一的信息

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

    if(studentInfoArray[i][3] == "大一"){

        var tempIndex = femaleArr.length;

        femaleArr[tempIndex] = studentInfoArray[i];

    }

 }

  

 //第二次筛选,找出都是女生的信息

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

     if(femaleArr[i][1] == "女") {

         document.write(femaleArr[i][0] + "<br />");

     }

 }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教,为什么要写var j=0和j=j+1呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信