1、如何用JS建立二维数组,以学生成绩表为例创建一个二维数组为例,并计算总分和平均分:
var arr=[];
var classs=["语文成绩","数学成绩","英语成绩"];
for(var i=0;i<6;i++){
var brr=[];//定义一个空数组,作为子数组
brr[0]= prompt("请输入学生的姓名");//子数组brr里的元素,取下标0的值
for(var k=1;k<=classs.length;k++){
brr[k]=parseInt(prompt("请输入"+brr[0]+"的"+classs[k-1]));//子数组brr里的元素,取下标1,2,3的值
}
arr[i]=brr; //将数组brr作为数组arr的第i个下标
}
//求平均分,总分
for(var i=0;i<arr.length;i++){
var zong= 0;//定义总分
for(var j=1;j<=classs.length;j++){
zong+=arr[i][j];//取数组arr第[i]个下标里的第[j]个下标的值,加入zong,依次是[0][1],[0][2],[0][3]
}
arr[i][arr[i].length]=zong;//将zong加入数组arr作为第(arr[i].length)个下标的值
arr[i][arr[i].length]=parseInt(zong/classs.length);//zong除以classs的长度取平均分,并作为第(arr[i].length)个下标的值
}
console.log(arr);
2、在一个数组中取最大值和最小值:
var arr=[xx,xx,xx,xx,xx,xx];
var max=arr[0];
var min=arr[0];
for(var j=0;j<arr.length;j++){
if(max<arr[j]){
max=arr[j];//取最大
}
if(min>arr[j]){
min=arr[j];//取最小
}
}
console.log(arr);
3、冒泡算法对数组进行排序,
var arr=[];
maopao();
function maopao(){
for(var i=0;i<10;i++){
arr[i]=parseInt(Math.random()*100);
}
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
document.write(arr);
}
4、对折查找排序
var brr = [1,2,3,4,5,6,7,8,9];
var start = 0;
var end = brr.length-1;
while(true){
if(start > end){
break;
}
var mid = parseInt((start+end)/2);
if(brr[mid] == 3){
break;
}else if(brr[mid] > 3){
end = mid;
}else{
start = mid;
}
}
转载于:https://www.cnblogs.com/xwenbin/p/9983999.html