数组的基础和习题

/*
数组:一个变量来存储一系列的值。
定义语法:
- 常规方式
- 简洁方式
- 最简洁方式

     */
        var names = new Array();
        names[0] = '张三';
        names[1] = '李四';
        names[2] = '王五';

        var names = new Array('张三','李四','王五');
        var names = ['张三','李四','王五','刘7'];
        索引:用下标去访问
        document.write(names[2]);
        更新:把某个位置的元素的值更改
        names[2] = '王六';
        document.write(names[2]);
        整体输出
        document.write(names);
        遍历:从头到位一个个的使用
        for ( var i = 0; i < names.length; i++){
//            document.write(names[i] + "<br/>");
            //把names数组里的所有元素更新为 xiaoming
            names[i] = 'xiaoming';
        }
        document.write(names);
        添加元素
        names[4] = 'xiaoming';
        document.write(names);
        删除:删除最后一个 pop()
        document.write(names.length + "<br/>");
        document.write(names + "<br/>");
        names.pop();
        names.pop();
        document.write(names.length + "<br/>");
        document.write(names + "<br/>");
        通过值获取到下标

        var i = names.indexOf('王五');
        document.write(i);

        var numbers = [11,22,33,777,44,55,66];

1、用三种方式定义一个数组,赋值为:11,22,33,777,44,55,66,
并利用循环输出显示数组里的所有值(实现数组的遍历)。
2、基于上题,求出所有数组的元素之和。

     var numbers = [11,22,33,777,44,55,66];

        var sum = 0;
        for (var i = 0; i < numbers.length; i++){
//            sum = sum + i;
            sum = sum + numbers[i];
        }
        document.write(sum);

// 3、基于上题,实现数组的倒序输出。

     var numbers = [11,22,33,777,44,55,66];
        for ( var i = numbers.length - 1; i >= 0; i--){
            document.write(numbers[i] + "<br/>");
        }

// 4、获取数组中的最大值(或最小值),并输出显示。

     var numbers = [11,22,343,33,777,44,7,55,66];
        //擂主。
        var max = numbers[0];
        for ( var i = 1; i < numbers.length; i++){
            //循环打擂台
            if ( max < numbers[i]){
                max = numbers[i];
            }
//            document.write("max:" + max + ", numbers[" + i + "]:" + numbers[i] +"<br/>");
        }
        document.write(max);

//删除某个位置开始的几个元素

     var numbers = [11,22,343,33,777,44,7,55,66];
        numbers.pop();
        numbers.splice(2,4);
        document.write(numbers);

连接

      var numbers01 = [1,2,3];
        var numbers02 = [10,20,30];
        var numbers = numbers01.concat(numbers02);
        document.write(numbers + "<br/>");
        document.write(numbers.length);

1、不借助于其他数组,将数组倒序存放,例如:
原始: 11,22,33,777,44,55,66
结果: 66,55,44,777,33,22,11
交换算法:利用一个中间变量

    var a = 10;
        var b = 20;
        var temp = 0;

        temp = a;  // temp 10   a 10  b 20
        a = b;      // temp 10  a 20  b 20
        b = temp;   //temp 10  a 20  b 10

        var myArray = [11,22,33,777,44,55,66,6];

        //for循环交换,次数是一半
        for (var i = 0; i < myArray.length/2; i++){
            //交换   myArray[i]       myArray[myArray.length - 1 -i]
            var temp = myArray[i];
            myArray[i] = myArray[myArray.length - 1 -i];
            myArray[myArray.length - 1 -i] = temp;

        }
        document.write(myArray);
        /*
        1:i 0  交换双方: myArray[0]  myArray[6]
        2:i 1  交换双方: myArray[1]  myArray[5]
        3:i 2  交换双方: myArray[2]  myArray[4]
        4:i 3  交换双方: myArray[3]  myArray[3]
        */

2、数组为var arr=[‘蜗牛’,’百度’,’谷歌’,’腾讯’];删除数组中的第二个元素,
不要用现成的splice(1,1)。

     var arr=['蜗牛','百度','谷歌','腾讯'];
        //表示要删除的元素的下标
        var index = 0;

        for ( var i = index; i < arr.length - 1; i++){
            //把后一个元素赋给前一个元素。
            arr[i] = arr[i+1];
            document.write(arr + "<br/>");
        }
        arr.pop();
        document.write("最终结果:" + arr + "<br/>");

3、对数字数组进行升序排序算法。

       var myArr = [120,34,55,90,31,4,200,44];
        var myArr = [120,34,55,90,31,4,200,44];
        //排序算法很多种:冒泡排序 - 两两比较,进行交换
        for ( var i = 0; i < myArr.length -1; i++){
            for ( var j = 0; j < myArr.length - 1 - i; j++){
                //两两比较,交换
                if ( myArr[j] > myArr[j+1]){
                    //交换
                    var temp = myArr[j];
                    myArr[j] = myArr[j+1];
                    myArr[j+1] = temp;
                }
    //            document.write("第<" + (j+1) + ">次:" + myArr + "<br/>");
            }
        }
        document.write(myArr + "<br/>");
 实现了将最大的顶到了最后一个位置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章