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数组的声明与应用的更多相关文章

  1. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  2. js 数组

    js中的数组类似与java中的容器 类型可以不同.长度可变 一.数组的声明 var arr1=new Array();//数组的声明一     var arr2=[1,2,3,true,new Dat ...

  3. js数组操作

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...

  4. js数组操作【转载】

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...

  5. js数组的操作 【转】

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...

  6. js数组的操作及数组与字符串的相互转化

    数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/ ...

  7. JS数组及内置对象

    [JS中的数组]1.数组的概念:数组是在内存中连续存储多个有序元素的结构元素的顺序,称为下标,通过下标查找对应元素.2.数组的声明: ① 字面量声明: var arr1 = [];JS中同一数组,可以 ...

  8. js 数组的操作

    js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...

  9. C#数组、js数组、json

    C#数组 参考地址C#之数组 什么是数组?数组是一种数据结构,包含同一个类型的多个元素.数组的声明:int[] myIntArray; 注:声明数组时,方括号 [] 必须跟在类型后面,而不是变量名后面 ...

随机推荐

  1. A Product Array Puzzle

    Given an array arr[] of n integers, construct a Product Array prod[] (of same size) such that prod[i ...

  2. ZOJ2929 Penalty Kick(概率)

    题目挺水的,但由于其独特的阅读量比赛的时候没发现这道水题,在此做一下翻译,如果有人搜到这翻译的话有帮助的话自然最好啦. 中国队平局进入最后的点球决胜局,首先抛硬币决定谁先罚球,然后先是罚五球,如果罚的 ...

  3. Android中 ListView 详解(二)

    本文版权归 csdn noTice501 所有,转载请详细标明原作者及出处,以示尊重! 作者:noTice501 原文:http://blog.csdn.net/notice520/article/d ...

  4. Android Grapics图像类体系

  5. JavaScript基础(一)

    我是一个初学者,但求能学到些许知识!以下是根据韩顺平老师的<轻松搞定网页设计html+css+javascript—javascrip部分>整理而成. 为什么要学习javascript? ...

  6. 说说Java中的代理模式

    今天看到传智播客李勇老师的JDBC系列的第36节——通过代理模式来保持用户关闭连接的习惯.讲的我彻底蒙蔽了,由于第一次接触代理模式,感到理解很难,在博客园找到一篇文章,先记录如下: 引用自java设计 ...

  7. qt之esc键

    Esc键对大家来说实在熟悉不过的了,在Qt中Esc键也会默认的进行一些事件的触发,今天对Esc键测试了一下,突然发现不像我想象的那样,在QDialog中按下Esc键会默认调用reject()方法而不是 ...

  8. MyBatis学习总结_11_MyBatis动态Sql语句

    MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(w ...

  9. MyBatis学习总结_09_使用MyBatis Generator自动创建代码

    一.构建一个环境 1. 首先创建一个表: CREATE TABLE t_user ( USER_ID INT NOT NULL AUTO_INCREMENT, USER_NAME CHAR(30) N ...

  10. JVM生产环境参数实例及分析

    java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweep ...