Javascript 基础--数组
一、一维数组
1.一维数组
var weights = [3,5,1,3.4,2,50];
var all_weight=0;
var avg_weight=0;
for(var i=0;i<weights.length;i++)
{
all_weight + =weights[i];
}
avg_weight=all_weight/weights.length;
//var num = new Number(avg_weight);
document.writeln("总体重是"+all_weight+"平均体重是:"+avg_weight.toFixed(2));
如果你想知道,数据类型
window.alert(avg_weight.constructor);
js中的数组,可以存放各种数据类型(数值、字符串)
数组的细节:
基本用法:
var 数组值 = [元素值1,元素值2...];
1.1数组中的值可以是任意类型的。
var num = ["helo",12,35.12];
1.2数组在内存中存在的形式:
js中的数组是引用传递
递归示例:
function abc(num1){
if(num1>3){
abc(--num1);
}
document.writeln(num1);
}
abc(5);

1.3 值传递与引用传递的区别
1.3.1 值传递
var myval =900; //在内存中新开一块区域
function abc(val){ //内存栈中新开一块区域,把myval的值复制一份副本传递给abc这个
方法的形参val
val = 90;
}
abc(myval);

1.3.2 引用传递
var myarr=[456,90,900];
fuction abc2(arr){
arr[0] = 35;
}
abc2(myarr);
for(var i=0;i<myarr.length;i++)
{
document.writeln(myarr[i]);
}

数组的引用
基本用法:
数组的名称[下标];
比如:
var a = [23,"hello",4.5];
我们访问 a[2] 则输出 4.5
如果我们访问 a[3] 则输出 undefine
结论:不能访问不存在的元素,数组下标是从0开始编号的。
1.4 js的数据可以动态增长
var a = [2,34];
alert(a.length);
a[2] = 56;
alert(a.length);
a[3] = "hell";
alert(a.length);
1.5 js数组的几个重要的应用
数组名.length
拆分字符串 字符串.split(拆分标准)
对字符串分割,生成一个字符串数组:
var str = "hello world abc 顺平";
var arr = str.split(" ",3);
for(var i=0;i<arr.length;i++)
{
document.writeln(arr[i]);
}
遍历数组还可以这样写:
var arr =[45,90,0,"hello"];
arr['gg'] = 900; // arr[0] arr[1] arr[2] arr[3] arr['gg']
for(var key in arr)
{
alert(key + "=" + arr[key]);
}
二、二维数组
var arr=[["shunping",10.23,12],["a","b","c"]];
for(var i=0;i<arr.length;i++)
{
for(var j=0;j<arr[i].length;j++)
{
document.writeln(arr[i][j] +" ");
}
document.writeln("<br/>");
}
三、排序查找
3.1 冒泡排序
var arr = [5,0,-56,900,12,35];
//var arr = [ 1,2,3,34,44,94]
var flag = false;
for(var i=0;i<arr.length-1;i++)
{
document.writeln("大循环...<br/>");
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;
flag = true;
}
} if(flag){
flag = false;
}else{
break;
}
} //输出排序后的数组:
for(var i=0;i<arr.length;i++)
{
document.writeln(arr[i]);
}
3.2 二分查找:
前台条件:该数组是有序的,不过不是有序的数组,不能使用二分查找。
代码:
var arr = [1,4,6,8,9,90,900];
//思路:找到数组的中间数(midVal),和你要查找的数(findVal)进行比较,如
果//midVal>findVal,则说明findVal在数组的左边,就把该数组二分(就在左边查找)
var arr = [1,4,6,8,9,90,900];
function binarySearch(arr,findVal,leftIndex,rightIndex){
//防止无穷递归 if(leftIndex>rightIndex)
{
document.writeln("找不到");
return;
} //找到中间值
var midIndex = Math.floor((leftIndex + rightIndex)/2);
var midVal = arr[midIndex]; //比较
if(midVal>findVal){
//在左边找
binarySearch(arr,findVal,leftIndex,midIndex-1);
}else if(midVal<findVal){
//在右边找
binarySearch(arr,findVal,midIndex+1,rightIndex);
}else{
document.writeln("找到下标为" + midIndex);
return;
}
} //测试
binarySearch(arr,2,0,arr.length-1);
四、矩阵转置
//矩阵转置:就是行列互换
/* 2 4 6 8
8 9 0 -1
9 6 2 1 */ var arr = [[2,4,6,8],[8,9,0,-1],[9,6,2,1]];
var arr2 = []; //初始化,定下有多行
for(var i=0;i<arr[0].length;i++){
arr2[i] = [];
} //动态添加数组中的数据
for(var i=0;i<arr.length;i++)
{
for(var j=0;j<arr[i].length;j++)
{
arr2[j][i] = arr[i][j];
}
} //遍历数组
for(var i=0;i<arr2.length;i++)
{
for(var j=0;j<arr2[i].length;j++)
{
document.writeln(arr2[i][j] + " ");
}
document.writeln("<br/>");
}
Javascript 基础--数组的更多相关文章
- JavaScript 基础数组循环和迭代的几种方法
JavaScript 数组循环和迭代 (之前一直没怎么注意数组循环,今天做一道题时,用到forEach循环发现它并没有按照我想象的样子执行,总结一下数组循环) 一.第一种方法就是for()循环 ...
- JavaScript基础-----数组(Array)
1.JavaScript 中创建数组的方法: (1).使用Array构造函数: var arr = new Array(); //创建一个空数组 var arr = new Array(5); //传 ...
- JavaScript基础数组的字面声名法(010)
1.两种方法的对比 数组在JavaScript中,就像大多数的其它语言 一样,是对象.我们可以使用JavaScript内置的数组构造函数Array()来创建数组.就象对象的字面声名法一样,数组也可以采 ...
- JavaScript基础数组_布尔值_逻辑运算等(2)
day51 参考:https://www.cnblogs.com/liwenzhou/p/8004649.html 布尔值(Boolean) 区别于Python,true和false都是小写. var ...
- JavaScript基础——数组
一 .数组的介绍 1.概念:数据的集合,任何数据都可以放在数组中 2.作用:可以同时操作多个数据 3.数组的创建: 字面量:var arr = [ ]; 构造函数:var arr = new Arra ...
- JavaScript基础------数组
数组1.数组的每个元素都可以保存任意类型数据2.数组长度可以随之调整创建数组的2种方式 1.使用Array构造函数 语法 new Array() 小括号()说明: (1)预先知道数组要保存的项目的数量 ...
- JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
JavaScript基础学习 学习js的基础很重要,可以让自己有更多的技能.我相信这个以后就会用到. Eg:点击选择框,在div中显示出选择的数量 window.onload = function() ...
- JavaScript 基础回顾——数组
JavaScript是无类型语言,数组元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同类型.数组的元素设置可以包含其他数组,便于模拟创建多维数组. 1.创建数组 在JavaScript中, ...
- javascript基础知识-数组
1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...
随机推荐
- DedeCMSV57数据库结构文档
表名:dede_addonarticle(ENGINE=MyISAM/CHARSET=gbk) 说明:Top 字段名 说明描述 具体参数 aid 文章ID mediumint(8) unsig ...
- tcp服务的测试程序开源
开源的是一个测试客户端,可以用来检验服务器端程序的并发处理能力. 使用方法为: python epolltest.py --host=192.168.15.128 --port=8809 --degr ...
- Web网页性能管理详解
你遇到过性能很差的网页吗? 这种网页响应非常缓慢,占用大量的 CPU 和内存,浏览起来常常有卡顿,页面的动画效果也不流畅. 你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站.作为一个 ...
- Windows NT访问权限
#define SECTION_QUERY 0x0001 #define SECTION_MAP_WRITE 0x0002 #define SECTION_MAP_READ 0x0004 #defin ...
- hdu---(3779)Railroad(记忆化搜索/dfs)
Railroad Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 20145236 冯佳 《Java程序设计》第3周学习总结
20145236 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 一.面向对象和面向过程 •面向对象是相对面向过程而言 •面向对象和面向过程都是一种思想 •面向过程 ...
- 记一次web项目总结
功能需求,登录,用户管理,新闻管理. 用户管理: // 分页查询所有用户信息 public List<User> userInfo(int index, int pageSize) thr ...
- 《Play for Java》学习笔记(七)数据类型解析——Body parser
一.什么是body parser? body parser(不知道具体如何翻译,~~~~(>_<)~~~~ )指一个HTTP请求 (如POST和PUT操作)所包含的文本内容(body),这 ...
- Sumblime Text2安装Package Control两种方法+安装插件+注册码
刚开始不认识sumblime的时候,就直接在网上下载了一个最新版的sumblime text3,只是在配合使用go语言时,出现了一些不为自己知道的奇葩问题,于是果断把3卸载了,改成了sumblime ...
- BZOJ1736 [Usaco2005 jan]The Wedding Juicer 婚宴的榨汁机
从外面一点一点往里面拓展(floodfill),每次找出最小的一个点,计算它对答案的贡献就好了... 找最小的点的话,直接pq就行 /********************************* ...