js基础巩固之--数组的声明与操作

来源:互联网 发布:四度空间软件 编辑:程序博客网 时间:2024/05/16 07:48

       本文的目的:巩固基础,数组的声明和常见操作

       本文知识点:数组的栈方法(后添加后删除):push(),pop(),数组的队方法(前添加,前删除):unshift(),shift();

                                       数组的排序:反序排列reverse();自定义排列:sort();

                                       数组的操作:数组拼接concat();数组截取slice();数组的删除,插入,和替换splice();

      本文希望:如果本文有地方讲述的不妥,请提出宝贵意见!

      js演示地址:http://runjs.cn/code/zxp29v38   请直接调出控制台,console.log()输出!

      js代码:

    

window.onload = function(){// 数组的创建,声明和赋值var arrayA = new Array();//普通式声明arrayB = new Array(3),//声明数组的长度arrayC = new Array('a','b'),arrayD = [],arrayE = [6,2,3,4],arrayF = [,,,,,,],arrayG = ['A','B','D','C']console.log(Array.isArray(arrayA) && Array.isArray(arrayC)); //判断是否是数组,IE9+console.log('arrayB.length='+arrayB.length);//数组的长度console.log('arrayE角标未1的值='+arrayE[1]);//数组角标元素的值console.log('arrayE角标未4的值='+arrayE[4]);//未定义的值:undefinedconsole.log('arrayF长度是:'+arrayF.length+'\n0角标的值:'+arrayF[0]);//arrayF长度是:6,值未undefined// 直接新加值arrayE[arrayE.length] = '我是新加的值!';console.log(arrayE[arrayE.length-1]);//arrayE长度已经增加1//数组转化成字符串,//注意如果用alert()输出,alert(),只能输出string类型的字符串,如果该类型不是string型,那么会自动加上toString()后输出//例如,arrayE中都是number型的数字,那么alert(arrayE)的时候,实际上后台输出的是,arrayE.toString();var arrayEstring = arrayE.toString();//把数组转换为字符串,并返回结果。console.log(typeof arrayEstring+' ==== '+arrayEstring);//string ==== 6,2,3,4,我是新加的值!var arrayGstring = arrayG.toLocaleString();//把数组转换为本地数组,并返回结果。// 菜鸟求问:什么是本地数组?什么作用?console.log(typeof arrayGstring+' ==== '+arrayGstring);//string ==== A,B,C,D//数组的操作,栈方法,push()后增加,pop()后删除arrayA.push(123);console.log(arrayA.length);//1var A = arrayA.pop();console.log(A);//取出数组的最后一项,123,console.log(arrayA.length);//0//数组的操作,队方法,unshift()前增加,shoft(),前删除arrayF.unshift('sgift(),前增加');console.log(arrayF[0]);var B = arrayF.shift();console.log(arrayF[0]);//重新排序方法,//reverse()反向的,a[0]→→a[a.length-1]的变成最后一个,依次反之,console.log(arrayG.reverse());//sort(),没有参数的情况下,根据属性的值进行从小到大排序,console.log(arrayE.sort());console.log(arrayG.sort());//sort(),根据传递进去的参数进行排序,如果想要位置前置,那么返回-1,后置,那么返回1,相等返回0var abc = [1,3,2,5,7,9,7];console.log(abc.sort(compare));function compare(a,b){if (a < b) {return 1;}else if(a > b){return -1;}else{return 0;}}//疑问:为什么不能直接写abc.sort(-1)//操作:concat(),基于当前数组中的所有项,创建新的数组var aAC = [1,2,5,7],ABC = aAC.concat('yes',['132','gg']);//ABC = aAC的数组集合加上'yes','132','gg';console.log(ABC);console.log(aAC);//并不会改变原来的数组//操作:slice();var aBD = aAC.slice(1,2);//选取角标为:1>=X<2aDE = aAC.slice(1);//选取角标为:1>=X<aAC.lengthconsole.log(aBD);console.log(aDE);//splice(),方法,课实现的功能,删除,插入和替换var OArray = [1,3,'yes','5','none'],OA     = OArray.splice(1,3);// 1<=X<=3,,,删除,传入两个参数,开始位置到结束位置console.log(OA);//输出,3,'yes','5'console.log(OArray);//输出1,none,//新插入,第一个参数为开始位置,第二个参数为要删除的项数,后面就爱任意个数的新加项var OB = OArray.splice(1,0,'新加入','这是真的!',1);//从1开始添加,删除0项,加入后面的项console.log(OArray);//替换,起始位置,要删除的项,和要新插入的项。新插入的项不必与删除的项相等,如果大于,会删除已有的,插入新加的var OBArray = [1,2,3,3,4,5,6,7,8,9,0];console.log(OBArray.splice(1,2,'替换1','替换2','替换3'));//删除两项,加入了三项,那么加入的第三项会直接插入进去console.log(OBArray);//不是值传递,引用传递,数组是对象var aa = ['123','456'],bb = aa;aa.pop();console.log(bb);for( var x in aa ){console.log( x +'==='+ aa[x]);}}



0 0
原创粉丝点击