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; 注:声明数组时,方括号 [] 必须跟在类型后面,而不是变量名后面 ...
随机推荐
- 单片机模拟 1/2 Bias、1/4 Duty的 LCD 驱动使用方法
工作原理 方式一 根据 LCD 的驱动原理可知,LCD 像素点上只能加上 AC 电压,LCD 显示器的对比度由 COM脚上的电压值减去 SEG 脚上的电压值决定,当这个电压差大于 LCD 的饱 ...
- javascript和“主流大型语言”(c# JAVA C++等)的差异
1.javascript不支持overload,因为它的函数参数是以数组方式来实现的,没有固定的参数签名,所以无法重载. 2.javascript的基本类型只有5个:number string boo ...
- PC端模拟手机浏览网页
很多网站都通过User-Agent来判断浏览器类型,如果是3G手机,显示手机页面内容,如果是普通浏览器,显示普通网页内容. 谷歌Chrome浏览器,可以很方便地用来当3G手机模拟器.在Windows的 ...
- POJ 1634 Who's the boss?
题意: 一个员工A的直接上司是那些薪水大于A,并且身高>=A的人中薪水最少的一个. 主席CEO的薪水最高,且身高也是最高的. 有多组数据. 每组数据给出m个员工,和q个询问. 每个员工有id.薪 ...
- appium自动化测试中获取toast消息的解决方法【转】
http://blog.csdn.net/hqzxsc2006/article/details/50036911 待实践.. 解决方法:appium下切换selendroid模式去获取Android的 ...
- C#网页采集
/// <summary> /// 返回提取数组 /// </summary> /// <param name="rex">正则</par ...
- 关于J-LINK升级最新固件后无法连上的一点分析
昨天升级了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升级,就去 SEGGER 的网站下了个最新版的 J-Link 软件包(4.46F 版的),装好后运行 J-Link Comm ...
- Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...
- Ubuntu13.10 eclipse菜单栏无法下拉
Ubuntu13.10 eclipse菜单栏无法下拉 Ubuntu 13.10已经发布,从13.04升级成功后,发现Eclipse菜单栏点击后,不能展示下拉列表了,但是快捷键有效.这个应该算是Ubun ...
- Java:多线程
创建线程的方式有两种: 第一种:使用线程类Thread或者继承它的子类创建线程对象 第二种:定义接口类实现接口Runnable创建线程对象 多线程的好处:可以整合资源,提高系统资源的利用率 多线程中提 ...