javascript 数组
2015-06-17 16:57
645 查看
1.定义:
① var arr = [1,2,3];
② var arr = new Array(1,2,3);
2.属性:
length-->可对数组进行读、写
var arr =[1,2,3];
alert(arr.length); // 3
arr.length = 1 ; //此时数组里仅剩下一个值,其它值被清空
扩展:快速清空数组元素的方法:
① arr.length = 0;
② arr[]; //效率比上面的高点
3.方法:
① 添加:push()、unshift()
push():添加值到数组末尾,返回数组的最新长度
unshift():添加值到数组前端,返回数组的最新长度
② 删除:pop()、shift()
pop():删除数组最后面的值,返回被删除的那个值
shift():删除数组最前面的值,返回被删除的那个值
实例:
③ 添加、删除、替换:splice()
splice():能对数组元素进行添加、删除、替换操作,返回值为被删除的那个值,如果没有删除操作,将无返回值。
实例:
实例:数组去重
④ 排序:sort()
方式一:按照字符编码排序
方式二:借助比较函数去排序
实例:有序排序
实例:随机排序
扩展:随机函数Math.random();
Math.random()是0~1之间的随机函数
Math.round()是四舍五入取整的函数
Math.ceil()向上取整函数
0~1之间的随机整数:Math.round(Math.random());
0~10之间的随机整数:Math.round(Math.random()*10);
5~10之间的随机整数:Math.round(Math.random()*5+5);
10~20之间的随机整数:Math.round(Math.random()*10+10);
20~100之间的随机整数:Math.round(Math.random()*80+20);
由上:
x~y之间的随机整数:
Math.round(Math.random()*(y-x))+x);
0~x之间的随机整数:
Math.round(Math.random()*x);
1~x之间的随机整数:
Math.ceil(Math.random()*x);
④ 连接数组:concat()
⑤ 颠倒数组位置: reverse()
扩展:颠倒字符串位置
var str = "abcdef";
alert(str.split('').reverse().join('')); //fedcba
⑥ join();
join() 方法用于把数组中的所有元素组合成一个字符串,元素根据指定分隔符进行分割,返回值是字符串。
⑦ 迭代方法:every()、filter()、forEach()、map()、some()
传入这些方法中的函数会接收三个参数:
数组项的值
该项在数组中的位置
数组对象本身
第一种: every()、some() 用于查询数组中的项是否满足某个条件
every():传入的函数必须对每一项都返回ture,这个方法才会返回ture,否则返回false。
some():传入的函数中有一项返回ture,这个方法就返回ture。
第二种: filter() 对传入的函数,筛选出符合条件的数组项 ,返回ture的项组成的数组
实例:返回一个所有的值大于2的数组。
第三种:map() 对原数组的每一个对应项做相应操作后,返回其操作后的数组
例如:给数组中的每一项乘以2,然后返回这些乘积组成的数组
第四种 :forEach() 对数组中的每一项运行传入的函数,无返回值,本质上与for循环迭代数组一样。
参考资料:妙味课程视频、javascript高级程序设计
① var arr = [1,2,3];
② var arr = new Array(1,2,3);
2.属性:
length-->可对数组进行读、写
var arr =[1,2,3];
alert(arr.length); // 3
arr.length = 1 ; //此时数组里仅剩下一个值,其它值被清空
扩展:快速清空数组元素的方法:
① arr.length = 0;
② arr[]; //效率比上面的高点
3.方法:
① 添加:push()、unshift()
push():添加值到数组末尾,返回数组的最新长度
unshift():添加值到数组前端,返回数组的最新长度
② 删除:pop()、shift()
pop():删除数组最后面的值,返回被删除的那个值
shift():删除数组最前面的值,返回被删除的那个值
实例:
<script> var arr =[1,2,3,4,5,6]; arr.unshift(arr.pop()); //把数组的最后一个值删除并插入到第一个位置 alert(arr); //6,1,2,3,4,5 </script>
<script> var arr =[1,2,3,4,5,6]; arr.push(arr.shift()); //把数组的第一个值删除并插入到最后一个位置 alert(arr); //2,3,4,5,6,1 </script>
③ 添加、删除、替换:splice()
splice():能对数组元素进行添加、删除、替换操作,返回值为被删除的那个值,如果没有删除操作,将无返回值。
实例:
<script> var arr = [1,2,3,4,5,6]; arr.splice(0,2); // 从第0位开始,删除两个值 alert(arr); // 3,4,5,6 arr.splice(4,1,'lily'); //从第4位开始,添加1个值“lily” alert(arr); //3,4,5,6,lily arr.splice(1,0,'jack'); //把4换成'jack' // alert(arr); //3,jack,4,5,6,lily </script>
实例:数组去重
<script> var arr =[1,2,3,4,3,2,3,5,6]; for(var i=0; i<arr.length; i++){ for(var j=i+1; j<arr.length; j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } alert(arr); // 1,2,3,4,5,6 </script>
④ 排序:sort()
方式一:按照字符编码排序
<script> var arr = ['b','d','a','c']; arr.sort(); alert(arr); //a,b,c,d </script>
方式二:借助比较函数去排序
实例:有序排序
<script> var arrWidth = ['10px','30px','222px','2px']; arrWidth.sort(function(a,b){ return parseInt(a)-parseInt(b); }); alert(arrWidth); //2px,10px,30px,222px </script>
实例:随机排序
<script> var arr = [1,2,3,4,5,6,7]; arr.sort(function(a,b){ return Math.random()-0.5; }); alert(arr); //2,3,1,5,6,4,7 </script>
扩展:随机函数Math.random();
Math.random()是0~1之间的随机函数
Math.round()是四舍五入取整的函数
Math.ceil()向上取整函数
0~1之间的随机整数:Math.round(Math.random());
0~10之间的随机整数:Math.round(Math.random()*10);
5~10之间的随机整数:Math.round(Math.random()*5+5);
10~20之间的随机整数:Math.round(Math.random()*10+10);
20~100之间的随机整数:Math.round(Math.random()*80+20);
由上:
x~y之间的随机整数:
Math.round(Math.random()*(y-x))+x);
0~x之间的随机整数:
Math.round(Math.random()*x);
1~x之间的随机整数:
Math.ceil(Math.random()*x);
④ 连接数组:concat()
<script> var arr1 = [1,2,3]; var arr2 = [4,5,6]; var arr3 = [7,8,9]; alert(arr1.concat(arr2,arr3)); //1,2,3,4,5,6,7,8,9 </script>
⑤ 颠倒数组位置: reverse()
<script> var arr1 = [1,2,3,4,5,6]; arr1.reverse(); alert(arr1); //6,5,4,3,2,1 </script>
扩展:颠倒字符串位置
var str = "abcdef";
alert(str.split('').reverse().join('')); //fedcba
⑥ join();
join() 方法用于把数组中的所有元素组合成一个字符串,元素根据指定分隔符进行分割,返回值是字符串。
<script> var arr=['red','yellow','pink']; alert(arr.join("-")); //red-yellow-pink alert(typeof arr.join()); //string </script>
⑦ 迭代方法:every()、filter()、forEach()、map()、some()
传入这些方法中的函数会接收三个参数:
数组项的值
该项在数组中的位置
数组对象本身
第一种: every()、some() 用于查询数组中的项是否满足某个条件
every():传入的函数必须对每一项都返回ture,这个方法才会返回ture,否则返回false。
<script> var number = [1,2,3,4,5,6,7,8,9]; var result = number.every(function(item,index,array){ return (item > 2); }); alert(result); // false,因为传入的函数只有部分满足>2这个条件 </script>
some():传入的函数中有一项返回ture,这个方法就返回ture。
<script> var number = [1,2,3,4,5,6,7,8,9]; var result = number.some(function(item,index,array){ return (item > 2); }); alert(result); // ture ,传入的函数只要有一项满足>2的条件即可 </script>
第二种: filter() 对传入的函数,筛选出符合条件的数组项 ,返回ture的项组成的数组
实例:返回一个所有的值大于2的数组。
<script> var number = [1,2,3,4,5,6,7,8,9]; var result = number.filter(function(item,index,array){ return (item>2); }) alert(result); // 3,4,5,6,7,8,9 </script>
第三种:map() 对原数组的每一个对应项做相应操作后,返回其操作后的数组
例如:给数组中的每一项乘以2,然后返回这些乘积组成的数组
<script> var number = [1,2,3,4,5,6,7,8,9]; var result = number.map(function(item,index,array){ return item * 2; }); alert(result); // 2,4,6,8,10,12,14,16,18 结果会在原数组的基础上每项乘以2 </script>
第四种 :forEach() 对数组中的每一项运行传入的函数,无返回值,本质上与for循环迭代数组一样。
<script> var number = [1,2,3,4,5,6,7,8,9]; number.forEach(function(){ // 做点什么... }); </script>
参考资料:妙味课程视频、javascript高级程序设计
相关文章推荐
- 理解Javascript的动态语言特性
- John:How JavaScript Timers Work
- jstl_fmt
- jstl_fmt
- 浅谈Javascript事件模拟
- Javascript之事件流
- Unable to compile class for JSP(不能编译class)
- JSON net.sf.json(json-lib包)
- 理清javascript的相关概念 DOM和BOM
- 解决JS浮点数(小数)计算加减乘除的BUG
- fastjson使用实例
- javascript循环timeout延迟执行
- javascript中string转UTF8格式byte数组
- 读取本地图片显示在JSP页面上
- js基础学习第一天(关于DOM和BOM)一
- Javascript学习篇(一)
- 如何判断一个js对象是否一个DOM对象
- 你所不了解的javascript操作DOM的细节知识点(一)
- D3js-地图中标注地点
- D3js-地图中标注地点