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. (转)約瑟夫問題的兩個O(log n)解法

    約瑟夫問題的兩個O(log n)解法 這個是學習編程時的一個耳熟能詳的問題了: n個人(編號爲0,1,...,n-1)圍成一個圈子,從0號開始依次報數,每數到第m個人,這個人就得自殺, 之後從下個人開 ...

  2. SQL技术内幕-4 row_number() over( partition by XX order by XX)的用法(区别于group by 和order by)

    partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指 ...

  3. poj 1085 Triangle War 博弈论+记忆化搜索

    思路:总共有18条边,9个三角形. 极大极小化搜索+剪枝比较慢,所以用记忆化搜索!! 用state存放当前的加边后的状态,并判断是否构成三角形,找出最优解. 代码如下: #include<ios ...

  4. 一步完成 MySQL 向 Redis 迁移

    从mysql搬一个大表到redis中,你会发现在提取.转换或是载入一行数据时,速度慢的让你难以忍受.这里我就要告诉一个让你解脱的小技巧.使用“管道输出”的方式把mysql命令行产生的内容直接传递给re ...

  5. UVA 10341 二分搜索

    Solve the equation:p ∗ e−x + q ∗ sin(x) + r ∗ cos(x) + s ∗ tan(x) + t ∗ x2 + u = 0where 0 ≤ x ≤ 1.In ...

  6. Spark源码编译

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3822995.html spark源码编译步骤如下: cd /home/hdpusr/workspace ...

  7. Project Euler 102:Triangle containment 包含原点的三角形

    Triangle containment Three distinct points are plotted at random on a Cartesian plane, for which -10 ...

  8. iOS开发--自动布局

    距离左边的: 距离顶部的: 距离右边的: 距离底部的:

  9. UITableview刷新某一个cell或section

    //一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2]; [tableview reloadSections:in ...

  10. iOS sqlite3数据库解析

    看来从版本3.3.1基本上已经支持线程句柄的传递功能.具体限制我标记了一下.(6) Is SQLite threadsafe?SQLite is threadsafe. We make this co ...