[js点滴]JavaScript关于数组的方法总结
2016-10-26 22:14
627 查看
// 1.数组的写法 // 1.1字面量写法 var arr = [1,2,3,4,5]; // 1.2 构造函数写法 var arr1 = new Array(2);//创建一个长度为2的一个数组对象 // 1.3 不加new关键字写法 var arr2 = Array(2);//创建一个长度为2的一个数组对象 var arr3 = new Array();//创建一个空数组 var arr4 = new Array("helloworld","world");//["helloworld","world"]; var arr5 = new Array(1,2);//[1,2]; // 2.如果指定了数组元素的个数,而没有指定数组具体的元素,则打印的每一个元素都是undefined(没有任何值),但是可以取得到length属性,取不到键名例如(2 in arr6;//false). var arr6 = new Array(4); arr6[1];//undefined arr6[2];// (2 in arr6); //false arr6.length; //4 // 3.数组方法 // 3.1作用于Array上的方法 // Array.isArray():来判断一个值是否为数组,返回值(true或者false) var array1 = [1,2,3,4,5,6]; console.log(typeof array1);//object console.log(Array.isArray(array1));//true //注意:typeof只能确定值是属于6大数据类型中的某一类型,不能具体确定该值到底属于对象中的数组还是函数等类型. //3.2 数组实例方法(作用于自己创建的数组变量上的方法) // 3.2.1 valueOf():返回数组本身 var array2 = ["string","hello",1,2,3]; var res = array2.valueOf();//返回的是数组本身(数组对象) var res1 = toString(array2.toString());//返回的字符串 var array3 = [1,2,3,4,['a','b','c']]; alert(array3.toString());"1,2,3,4,'a','b','c'" // 3.2.2往数组末尾添加一个或多个元素 push() 返回值一定是添加新元素后的数组的长度,且原有数组发生了改变. var length = array2.length; array2[length] = "abc";//["string","hello",1,2,3,"abc"] var a = [1,2,3,4]; var res = a.push(1);//res = 5; alert(a);//a = [1,2,3,4,1] a.push(1,2,3,4,5,"hello",{},true);//添加多个 alert(a); //3.2.2 练习 var a1 = [1,2,3,4,5]; var a2 = [7,8,9,10]; //结果:[1,2,3,4,5,7,8,9,10] var len1 = a1.length; var len2 = a2.length; for (var i = len1;i < len1+len2;i++) { a1[i] = a2[i-len1]; } // 3.2.3 pop():用于删除数组的最后一个元素,返回值是返回删除的这个元素,该数组也改变了原有的数组 var a3 =[1,2,3]; var res4 = a3.pop();//[1,2]; res4 = 3; var a4 = []; var res5 = a4.pop();//res5 = undefined //3.2.4 join()该方法以join中参数来分割字符串,将数组所有数据成员组成一个字符串返回,如果不提供参数,默认以逗号分割 var a5 = [1,2,3,4]; a5.join();//默认:"1,2,3,4,5" var res6 = a5.join("|");//"1|2|3|4|5" var a6 = [undefined,null]; alert(a6.join("$"));//"$" var a7 = [12,,13]; alert(a3.join("*"));//"12**13" //3.2.5 concat()多个数组的合并,返回合并后的数组,原有数组不变 var a8 = [1,2,3]; var a9 = [4,5,6,7]; var a10 = a8.concat(a9); alert(a10);//[1,2,3,4,5,6,7] alert(a8);//[1,2,3] a8.concat(1,2,3,5,6,7);//[1,2,3,1,2,3,4,5,6,7] //等效于 a8.concat([1,2,3,4,5,6,7]);[1,2,3,1,2,3,4,5,6,7] //合并多个数组 a8.concat([1,2],[23,4,5],[1,2,3,4]); //3.2.6 shift用于删除数组第一个元素,返回值为删除的这个元素,该方法会改变原有方法 var a11 = [1,2,3]; a11.shift();//[2,3]; //清空数组 var a12 = [1,2,3,4,5,6,7]; //for (var i = 0;i < a12.length;i++) { // a12.shift(); //} //a12;//[]; while (a12.shift()){} alert(a12);//[]; //3.2.7 unshift():向数组的第一个位置添加一个或多个元素,并返回添加新元素后的数组长度,同样会改变原有数组 var a13 = [1,2,3,4,5]; var len13 = a13.unshift("hello");//a13=["hello",1,2,3,4,5]; a13.unshift(6,7,8,9);//[6,7,8,9,1,2,3,4,5]; //var a14 = [1,2,3,4,5,6,7,8,9]; ////结果:[9,8,7,6,5,4,3,2,1]; //var a15 = []; //for (var i = a14.length;i >0;i--) { // a15.push(a14[i-1]); //} //for (var i = 0;i < a14.length;i++) { // a15.push(a14[a14.length-i-1]); // //// a15[i] = a14[a14.length-i-1]; //} //function jiechen( n ){ // return ( n <= 1 ) ? 1 : n*jiechen(n-1); //} // //console.log("jiecheng===>>"+jiechen(3)); //3.2.8 reverse():用于颠倒数组中元素的顺序,返回值:改变后的数组.改变了原有的数组. var a16 = [1,2,3,4]; a16.reverse(); console.log(a16); //3.2.9 slice():提取原数组的一部分,返回一个新数组,原数组不变 //slice()中有两个参数,第一个参数其实位置(从0开始),第二个参数是终止位置(该位置元素不包含).如果省略第二个参数,从开始返回原数组的最后一个元素. var a17 = [1,2,34,5]; var a18 = a17.slice(0,2);//[1,2]; console.log(a18); var a19 = a17.slice(1);//[2,34,5] console.log(a19); //slice()没有参数则返回的全部 var a20 = a17.slice();//[1,2,34,5]; //3.2.10 splice():用于删除数组的一部分元素,返回值:返回被删除的元素数组.删除同时还可以添加元素.该方法也改变了原有的数组. //语法: /*splice(start_index,del_count,add_elment1,add_elment1,...); 第一个参数:删除元素的起始位置 第二个参数:从起始位置(包括起始位置)删除元素的个数 第二个以后的参数:要添加的元素 */ var a21 = [1,2,3,4,5,6,7]; a21.splice(2,1,"ass","awe");//[1,2,"ass","awe",4,5,6,7] console.log("a21==="+a21); var a22 = [56,34,78,12,32]; //从小到大排序 for (var i = 0;i < a22.length;i++) { for (var j = 0;j < a22.length-i-1;j++) { if (a22[j]>a22[j+1]) { var temp = a22[j]; a22[j] = a22[j+1]; a22[j+1] = temp; } } } /* 原始数组:[56,34,78,12,32] 第一趟i=0: 第一次j=0:a22[0]>a22[1]: 34,56,78,12,32 第二次j=1:a22[1]>a22[2]: 34,56,78,12,32 第三次j=2:a22[2]>a22[3]: 34,56,12,78,32 第四次j=3:a22[3]>a22[4]: 34,56,12,32,78 第二趟i=1: 第一次:j=0:a22[0]>a22[1]:34,56,12,32,78 第二次:j=1:a22[1]>a22[2]:34,12,56,32,78 第三次:j=2:a22[2]>a22[3]:34,12,32,56,78 第三趟i=2: 第一次:j=0:a22[0]>a22[1]:12,34,32,56,78 第二次:j=1:a22[1]>a22[2]:12,32,34,56,78 第四趟i=3: 第一次:j=0:a22[0]>a22[1]:12,32,34,56,78 console.log(a22); */ /*冒泡法比较公式: for (var i = 0;i < arrays.length;i++) { for(var j = 0;j < arrays.length-i-1 ){ if(arrays[j]>arrays[j+1]){ var temp = arrays[j]; arrays[j] = arrays[j+1]; arrays[j+1] = temp; } } } */ //3.2.11 sort()对数组进行排序,按从小到大来排序 ['a','c','b','d'].sort();//['a','b','c','d'] //3.2.12 数组的遍历 //forEach(),遍历数组的所有成员,执行某种操作,没有返回值 var els = [11,22,33,44,55]; //里面第一个参数:具体遍历的元素11,12,... //第二个参数:元素索引 参数省略 //第三个参数:原数组 参数可省略 //forEach()中的参数是函数 els.forEach(function(element,index,array){ console.log("element==>"+element); console.log("index==>"+index); console.log("array==>"+array); }); //3.2.13 filter()过滤函数,里面参数也是个函数,返回值:返回符合参数条件所有元素组成的一个数组. //里面第一个参数:具体遍历的元素11,12,... //第二个参数:元素索引 参数省略 //第三个参数:原数组 参数可省略 var els2 = [1,2,3,4,5,6]; var res100 = els2.filter(function(element,index,array){ return index%2===0; }); console.log(res100);
相关文章推荐
- [js点滴]JavaScript关于函数总结
- javascript中有关于对数组方法的总结
- 关于javascript数组的定义与其一些常用方法总结
- [js点滴]JavaScript字符串常见方法总结
- js面试题:关于数组去重的四种方法总结
- js数组去重的三种常用方法总结
- JS 在数组插入字符的实现代码(可参考JavaScript splice() 方法)
- [收藏]Javascript关于日期的各种技巧和方法总结[欢迎补充]
- JavaScript学习点滴—js对象的四种类型的属性、方法的访问
- javascript数组去重方法终极总结
- javascript(js)自动刷新页面的实现方法总结
- js数组去重的三种常用方法总结
- js中数组Array的一些常用方法总结
- 关于.NET TextBox 前台JS赋值 后台得不到值的处理方法总结
- javascript数组操作总结和属性、方法介绍
- javascript数组去重方法终极总结
- 关于JS中的数组的sort方法
- js中文本和数组的方法总结
- [Asp.net+JS]asp.net中调用javascript自定义函数的方法总结
- Javascript 数组使用方法总结(转载)