首页 > 代码库 > javascript那些事儿(一)javascript数组用法总结(1)
javascript那些事儿(一)javascript数组用法总结(1)
/* 1、js数组跟其他语言的数组一样,都是数据的有序列表,但不同的是,js数组的每一项可以保存任何类型的数据。 并且js数组的大小是可以动态调整的。 2、创建数组方式: */ //(1)使用Array构造函数创建数组: //var names = new Array(); //创建length=30的数组 //var names = new Array(30); //如果预先知道数组长度,可直接传入数值 //alert(names.length); //30 //也可以像Array构造函数传递数组应该包含的项: //var names2 = new Array("zhangsan","lisi","wangwu"); //alert(names2); //zhangsan,lisi,wangwu //给Array构造函数传递一个值也可以创建数组 //var ages = new Array(2); //创建包含两项的数组 //var ages = new Array("11"); //创建包含1项,即字符串“11”的数组 //可以省略new操作符 //var books = Array(2);//创建包含两项的数组 //var books = Array("books1");创建包含1项,即字符串“books”的数组 //(2) 使用数组字面量表示法创建数组:数组字面量由一对包含数组项的方括号表示,多个数组项之间用逗号隔开 //var names = ["zhangsan","lisi","wangwu"]; //创建一个包含3个字符串的数组 //var names = []; // 创建一个空数组 //在数组最后一项添加逗号的结果: //在其他浏览器中会创建包含2项且值分别为"zhangsan","lisi"的数组 //在IE中,names会创建包含3项,值分别为“zhangsan","lisi",undefined的数组, //原因在于IE8及之前版本的ECMAScript实现在数组字面量方面存在BUG //var names = ["zhangsan","lisi",]; //alert(names); //IE9下报错,IE8及以下:zhangsan,lisi, //alert(names.length); //像这种省略值情况下,每一项都是undefined值。 //var names = [,,,,,]; //alert(names.length); //5:在及其他浏览器中创建包含5项的数组 //alert(names.length); // 6: 在IE版本中创建包含6项的数组 //alert(names[5]); //undefined //读取设置数组值 //var colors = ["red","green","blue"]; //alert(colors[0]); //显示第一项 //colors[2] = "pink"; //修改第三项 //alert(colors); // red,green,pink //colors[3] = "black"; //增加第四项,设置某个值的索引超过了数组长度,则数组长度自动加1 //alert(colors); //red,green,pink,black //3、length属性:>=0 ,length属性不是只读的,可以通过设置length属性来从数组末尾移除项或向数组中添加项 //var colors = ["red","green","blue"]; //colors.length = 2; //alert(colors[2]); //undefined //var colors = ["red","green","blue"]; //colors.length = 4; //alert(colors[3]); //undefined //var colors = ["red","green","blue"]; //colors[colors.length] = "black"; //colors[colors.length] = "pink"; //alert(colors); //red,green,blue,black,pink //var colors = ["red","green","blue"] //colors[99] = "black"; //alert(colors.length); // 100 ,colors[3]到color[98]都是undefined //4、数组类型判断 //对于一个网页或一个全局作用域,instanceof假定单一的全局执行环境 //var colors = ["red","green","blue"]; //var obj = {}; //alert(colors instanceof Array); //true //alert(obj instanceof Array); // false //对于网页中包含多个框架,则就存在多个不同的全局执行环境,从而存在多个不同版本的Array构造函数, //那么从一个框架向另一个框架传入一个数组,则传入的数组与第二个框架中的数组则分别具有不同构造 //为了解决这个问题,则须采用Array.isArray()方法 //var colors = ["red", "green", "blue"]; //var obj = {}; //alert(Array.isArray(colors)); //true //alert(Array.isArray(obj)); //false //兼容性:支持isArray方法的浏览器有: IE9+,其他浏览器 //5、toString(): 返回数组每一项用逗号分隔的字符串,调用数组每一项的toString()方法 //valueOf(): 返回数组 //var colors = ["red", "green", "blue"]; //alert("toString="+colors.toString()); //red,green,blue //alert(colors); //alert接收字符串参数,传递给它的是数组,因此在后头会调用Array的toString()方法 //alert("valueOf="+colors.valueOf()); //alert(Array.isArray(colors.valueOf())); //true //toLocaleString(): 返回数组每一项用逗号分隔的字符串,调用每一项的toLocaleString()方法,而不是toString()方法 /* var book1 = { toString : function(){ return "book1.toString()"; }, toLocaleString : function(){ return "book1.toLocaleString()"; } }; var book2 = { toString : function(){ return "book2.toString()"; }, toLocaleString : function(){ return "book2.toLocaleString()"; } }; var book = [book1,book2]; alert(book); //book1.toString(),book2.toString() alert(book.toString); //function toString(){[natice code]} alert(book.toString());//book1.toString(),book2.toString() alert(book.toLocaleString());//book1.toLocaleString(),book2.toLocaleString() */ //join(): 接收一个作为分隔符的参数, 返回由分隔符分隔的字符串, //var colors = ["red^", "green^", "blue^"]; //alert(colors.join(','));//red^,green^,blue^ //alert(colors.join('|'));//red^|green^|blue^ //alert(colors.join()); //默认以逗号分隔: red^,green^,blue^ //alert(colors.join(undefined));//在IE8+及其他浏览器中显示:red^,green^,blue^ //alert(colors.join(undefined)); //在IE7及以下版本显示:red^undefinedgreen^undefinedblue^ //如果数组中的某一项值为null或undefined,则该值在join()\valueOf()\toString()\toLocaleString()都返回空字符串 //var names = ["zhangsan",null,undefined,"lisi"]; //alert(names); //zhangsan,,,lisi //push(): 接收任意数量参数,添加到数组末尾,返回修改后数组长度 //var names = new Array(); //var num = names.push("zhangsan","lisi"); //alert(num); //2 //num = names.push("wangwu"); //alert(num); //3 //var item = names.pop(); //alert(item); //wangwu //shift() : 移除数组第一项并返回 //var colors = ["red","green","blue"]; //var item = colors.shift(); //移除第一项并返回 //alert(item); //alert(colors.length); //2 //unshift() : 在数组前端添加任意个项并返回数组新长度,对于IE7及更早版本,unshift返回undefined而不是数组长度 //var colors = ["red","green","blue"]; //var count = colors.unshift("aaa","bbb"); //alert(colors);//"aaa","bbb","red","green","blue" //alert(count);//5
javascript那些事儿(一)javascript数组用法总结(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。