js数组的声明与应用
js数组的声明与应用
数组:一种容器,存储批量数据。
JavaScript是一种弱类型语言。什么是弱类型,就是变量可以存储多种类型变量的引用不会报错。
所以js数组可以存储不同的数据。
一、数组的作用:只要是批量的数据都需要使用数组声明
二、如何声明数组
1、快速声明数组
var 数组名=[元素1,元素2,....];
2、
三、遍历数组
四、数组的处理
<script>
/*快速声明数组*/
/*
var names=["张三","李四","王五"];
var arrs=[
["111","222"],
["aaa","bbb"]
];
alert(names[1]);
alert(arrs[1][1]);
*/
/* 对象类型的声明 */
/*
var p=new Object(); p.name="zhangsan";
p.age=10;
p.sex="nan";
*/
/*
json表示法:
{属性1:值,属性2:值2 ...}
var p={
"name":"zhangsan",
"age":10,
"sex":"nan"
};
*/
/*
var p={
"name":"zhangsan",
"age":10,
"sex":"nan"
}; alert(p.name);
alert(p["name"]);
*/
//对象的这种表示方式是不是像一个数组,所以我们模拟出数组的一种方式。
/*function myArray(){
var o=new Object();
o.length=arguments.length;
if (o.length>0){
for(var i=0;i<arguments.length;i++){//这里要注意,如果属性是变量不可以使用.的方式,一定要使用[]属性的方式才可以
o[i]=arguments[i];
}
}
return o;
}
var myArray=new myArray(1,2,5,7,9);
alert(myArray.length);
alert(myArray[1]);
*/ /*既然连我们都可以模拟出一个数组对象,更何况大牛们,所以JavaScript为我们提供了一个数组对象:Array*/
/*
var arr=new Array(10);
alert(arr.length);
alert(arr[1]);//数组的元素如果没有值,默认是undefined
*/
/*s
Array对象的一些方法与属性:
属性:length 返回数组的长度
方法:
concat([item1[, item2[, . . . [, itemN]]]]) 将多个数组组合成一个数组
join(separator)返回由指定分割符隔开的数组内容的字符串形式
reverse() 将数组元素反转,逆序
slice(start[,end])截取数组。如果end不填,返回的是从start下标到结尾的数组对象。如果end为正数,截取的就是区间[start,end),如果end是负数,表示倒数第几位 splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])从数组指定位置移除指定长度的元素,可以在移除的位置插入新元素,返回所移除的元素,item1...是可变参
sort();排序数组元素,默认使用自然排序。可以传入一个比较方法,类似于treeMap中的比较器对象 push(([item1 [item2 [. . . [itemN ]]]]))加入元素在结尾,返回数组的长度
pop() 将数组视为栈结构,删除结尾元素
shift()将数组视为队列结构,删除第一个一个元素是从第一个位置开始删除
unshift([item1[, item2 [, . . . [, itemN]]]]),参数是可变参,添加元素在开始位置,顺序与参数顺序一致 */
//var arr1=[1,8,3,6,7];
//var arr2=[2,3,4,2];
//var arr3=arr1.concat(arr2);
//alert(arr3);
//alert(arr3.join("-"));
//alert(arr1.reverse());
//alert(arr1.splice(1,2));
//alert(arr1.slice(2,3));
//alert(arr1.sort());
//依据字符串长度排序
var arr1=["aa","aaaa","bbb","e","bbbbb"];
/*
arr1.sort(function(a,b){
if(a.length>b.length){
return -1;
}else if(a.length==b.length){
return 0;
}else{
return 1;
}
});
alert(arr1);
*/
arr1.push("bk");
alert(arr1);
arr1.pop();
alert(arr1);
arr1.unshift("ss");
alert(arr1);
arr1.shift();
alert(arr1);
</script>
<html>
<head> </head> <body> </body>
</html> <script>
//需求:实现贪吃蛇的地图以及蛇起点和食物坐标的位置 /*
分析:
地图怎么做呢?
使用div,然后给背景颜色,div固定长宽,背景,边框,定位,作为一个格子。由多个格子组成地图
起始格子和食物格子怎么做呢?
也是div,这个使用随机数,所有的格子组成一个二维数组。随机获取一个坐标,然后背景颜色改变。
*/
var rows=20;
var cols=20;
var width=20;
var height=20;
var top=100;
var left=500;
//var bg="yellow";
var arr=new Array(rows);
for(var i=0;i<arr.length;i++){
var temp=new Array(cols);
for(var j=0;j<temp.length;j++){
temp[j]=0;
}
arr[i]=temp;
}
//alert(arr);
var row1=random(rows);
var col1=random(cols);
arr[row1][col1]=1;
do{
var row2=random(rows);
var col2=random(cols);
}while(row2==row1 || col2==col1)
arr[row2][col2]=2;
//alert(row1+"--"+col1);
function random(a){
return parseInt(Math.random()*a);
} for(var j=0;j<rows;j++){
for(var i=0;i<cols;i++){
if(arr[j][i]==1)
var bg="red";
else if(arr[j][i]==2)
var bg="blue";
else
var bg="yellow";
document.write("<div style='background-color:"+bg+";position:absolute;top:"+(100+j*height)+"px;left:"+(left+i*width)+"px;width:"+width+"px;height:"+height+"px;border: 1px white solid;'></div>");
}
} </script>
js数组的声明与应用的更多相关文章
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- js 数组
js中的数组类似与java中的容器 类型可以不同.长度可变 一.数组的声明 var arr1=new Array();//数组的声明一 var arr2=[1,2,3,true,new Dat ...
- js数组操作
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...
- js数组操作【转载】
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...
- js数组的操作 【转】
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...
- js数组的操作及数组与字符串的相互转化
数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/ ...
- JS数组及内置对象
[JS中的数组]1.数组的概念:数组是在内存中连续存储多个有序元素的结构元素的顺序,称为下标,通过下标查找对应元素.2.数组的声明: ① 字面量声明: var arr1 = [];JS中同一数组,可以 ...
- js 数组的操作
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- C#数组、js数组、json
C#数组 参考地址C#之数组 什么是数组?数组是一种数据结构,包含同一个类型的多个元素.数组的声明:int[] myIntArray; 注:声明数组时,方括号 [] 必须跟在类型后面,而不是变量名后面 ...
随机推荐
- 2016年度 JavaScript 展望(上)
[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...
- ZOJ3229 Shoot the Bullet(有源汇的上下界最大流)
#pragma warning(disable:4996) #include <iostream> #include <cstring> #include <string ...
- 深入浅出ES6(十七):展望未来
作者 Jason Orendorff github主页 https://github.com/jorendorff 出于对文章长度的考虑,我们还保留了一些尚未提及的新特性,在最后的这篇文章中我会集 ...
- lintcode: 左填充
题目 实现一个leftpad库,如果不知道什么是leftpad可以看样例 样例 leftpad("foo", 5) >> " foo" leftpa ...
- Tomcat日志问题
[Tomcat日志设定][tomcat控制台日志][log4j日志] 1 Tomcat 日志概述 Tomcat 日志信息分 为 两 类 : 一是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异 ...
- ios开发 ad hoc
iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别 ...
- Hibernate笔记——关联关系配置(一对多、一对一和多对多)
原文:http://www.cnblogs.com/otomedaybreak/archive/2012/01/20/2327695.html ============================ ...
- [iOS问题归总]SourceTree+osChina版本管理出现的问题
1.commit失败(1) 解决办法: 把爆红的路径的文件删除掉, 重新commit 2. push时候, 有100MB限制 解决办法: Git只允许上传最大100MB的文件,如果超过,则会被serv ...
- [转]ArcGIS计算图斑的四邻坐标(XMin,XMax,YMin,YMax)
1.背景: 在国土,调查等行业业务里面经常有需要计算某个图斑的四邻坐标,即xmax,xmin,ymin,ymax;也就是常说的MBR(最小外包矩形),本教程演示如何计算一个shapefile文件上的图 ...
- Ubuntu 13.10 安装Qt5
Qt5在Ubuntu的软件中心是找不到的,只能从Qt的官网下载安装. http://qt-project.org/downloads,选择完整的Linux版本(qt-linux-opensource- ...