JS 学习 数组
来源:互联网 发布:淘宝怎么申请企业店铺 编辑:程序博客网 时间:2024/05/21 08:42
① 如何创建数组
方法1
var arr=[元素1,元素2......] 其实也可以这样创建空数组 var arr=[];
元素的个数可以任意,元素的类型可以任意
方法2.
var arr=new Array();
☞ 如果下标越界会怎样?
报 undefine
☞ js的数组是否能够动态的增长
vara=[2,3];
a[2]=56;
alert(a[2]);
说明js的数组可以动态增长.
① 数组在内存中怎样存在..
php程序中,通过一个函数传递数组,是值传递,还是引用传递?
结论是默认是值传递(拷贝.)
js代码中,通过一个函数传递数组,是引用传递
functiontest2(val){
//val[0] 访问第一个元素.
val[0]=900;
}
arr=[1,2,3];
//调用函数
test2(arr);
for(var i=0;i<arr.length;i++){
document.write("*****"+arr[i]);
}
输出是 900*****2****3
但是如果函数是
functiontest2(val){
//val[0] 访问第一个元素.
val=null;
}
那会返回1 2 3
原因:val不在指向arr的地址了 而是执行null
u 数组的常用的属性和函数
① length 属性可以返回该数组的大小(遍历)
② split 函数,可以拆分字符串.
var str="abchello boy";
var arr=str.split(" ");
document.write(arr+ arr.length);
u 数组小结:
①数组可存放任意类型的数据
②数组大小不必事先指定,可以动态增长
③数组名可以理解为指向数组首地址的引用.
④数组元素默认从0开始编号的.
二维数组
var arr1=[元素1,元素2..]
如果我们的元素又是一个数组,则这个一维数组就成了二维数组.
测试题:
/*
0 0 0 0 0 0
00 1 0 0 0
02 0 3 0 0
00 0 0 0 0
*/
//定义二维数组
vararr2=[[0,0,0,0,0,0],[0,0,1,0,0,0],[0,2,0,3,0,0],[0,0,0,0,0,0]];
for(vari=0;i<arr2.length;i++){
var size=arr2[i].length;
for(varj=0;j<size;j++){
document.write(arr2[i][j]+" ");
}
document.write("<br/>");
}
冒泡排序二分查找:
1. 二分查找
面试题: 一定掌握!
//二分查找[递归]
//二分查找要保证我们的数组是一个有序的.
//思想是
//首先把数组的中间这个数找出,然后和你要查询的数比较
//① 你要查询的数比中间的数大. 则说明我们应当该数组的右边[后边]查询
//② 你要查询的数比中间的数小 .则说明我们应当该数组的左边[前边]查询
//③ 你要查询的数等于中间的数, 说明找到
var arr=[1,90,100,123,4000];
functionbinarySearch(findVal,arr,leftIndex,rightIndex){
//退出条件
if(rightIndex<leftIndex){
document.write("查询没有结果");
return;
}
//代码:
//找到中间数的下标
varmidIndex=Math.round((leftIndex+rightIndex)/2);
if(arr[midIndex]<findVal){
binarySearch(findVal,arr,midIndex+1,rightIndex);
}elseif(arr[midIndex]>findVal){
binarySearch(findVal,arr,leftIndex,midIndex-1);
}else{
document.write("找到 下标是"+midIndex);
//binarySearch(findVal,arr,leftIndex,midIndex-1);
}
}
//调用的格式
binarySearch(100,arr,0,arr.length-1);
- JS 学习 数组
- JS学习笔记-数组
- 【JS学习笔记】数组
- js数组操作方法学习
- Js学习之数组
- js学习-数组(1)
- js学习-数组(2)
- js学习-数组(3)
- JS数组 学习笔记
- JS学习之数组;
- JS学习-数组
- JS数组的学习
- js学习-数组
- js数组对象的学习
- js数组对象的学习
- js数组操作学习总结
- JS学习第九天----数组
- JS数组学习笔记整理
- 用vim打造verilog IDE
- Windows操作系统中消除汉字乱码有绝招
- C语言的移位操作符
- XCode4.5免证书真机发布及调试
- [面试] 判断一棵树是否为完全二叉树
- JS 学习 数组
- ASP中使用ServerVariables集合详解
- 九度OJ 题目1136:Number Steps
- mac自签名根证书制作步骤
- 解决英文Windows 7显示汉字时出现乱码
- ORA-04091 错误,我换位思考的解决方法
- Android:Activity中onCreate方法的参数及用途
- 一条命令下载google壁纸,含错误解决方法
- Linux 的 NUMA 技术