码迷,mamicode.com
首页 > 编程语言 > 详细

js数组的声明与应用

时间:2016-06-25 10:51:22      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

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>
View Code
技术分享
<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>
View Code

 

js数组的声明与应用

标签:

原文地址:http://www.cnblogs.com/aigeileshei/p/5615919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!