• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 关于js数组

关于js数组

作者:jiaojsun的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-26

jiaojsun的博客通过本文主要向大家介绍了javascript等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

两种定义方式,第一种更好

 var arr = [ 1,2,3 ];
 var arr = new Array(1,2,3);

注意:下面第一种写法表示创建一个长度为3的数组,下面表示创建【3】这样的数组。

var arr = new Array(3);
var arr = new Array('3');

数组中的length是一个可读可写的属性

var arr = [ 'aaa',2,3 ];
// alert( arr.length );         // 3
// arr.length = 0;  //数组被清空

注意字符串中的length只可以读不可以写

var str = 'aaaaa';

// str.length = 1;
alert(str);//依然是'aaaaa'

2. 数组4个小宝贝方法与技巧

push-后面插入

var arr = [ 1,2,3 ];
 alert( arr.push( 'abc' ) );//弹出4,4指的是push后数组的长度

unshift-前面插入

alert( arr.unshift( 0 ) );// IE 6  7 不支持 unshift 返回值

alert( arr );//0123
alert( arr.unshift(0));//4,数组的长度

pop()-删掉数组最后一个元素

var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
arr.pop()
alert( arr );//[ 'TM', '钟毅', '张森', '杜鹏']
// alert( arr.pop() );//返回值是被删掉的那个元素'Leo'

shift()-扔掉最前面的那一个元素

var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
alert( arr.shift() );//返回值是被删掉的那个元素'TM'
arr.shift();
alert( arr );//['钟毅', '张森', '杜鹏', 'Leo' ]

小技巧,交换位置

var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];

// arr.unshift(arr.pop());

arr.push(arr.shift())

// alert( arr );

3. splice方法、数组去重

splice()的功能:删除、替换、添加

var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
arr.splice(0,1);//删掉第一个,变成['钟毅', '张森', '杜鹏', 'Leo' ]
arr.splice(0,1);//从第0位开始,删掉1个
var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
arr.splice( 0 , 1, '莫涛' ) //替换,变成[ '莫涛', '张森', '杜鹏', 'Leo' ];
 arr.splice( 0, 2, '莫涛 or 钟毅' );//替换,变成[ '莫涛 or 钟毅', '杜鹏', 'Leo' ];
var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
//以下变成[ 'TM','钟毅媳妇儿~', '钟毅媳妇们~' , '钟毅', '张森', '杜鹏', 'Leo' ]
alert( arr.splice( 1, 0, '钟毅媳妇儿~', '钟毅媳妇们~' ) );

alert( arr );

关于数组去重

var arr=[1,2,2,4,2];
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);

4. sort排序

无序变有序

<script>
var arr = [ 'c', 'd', 'a', 'e' ];
arr.sort();
alert( arr );//acde 按照字符的编码值排序

var arr2 = [ 4,3,5,5,76,2,0,8 ];
arr2.sort();
alert( arr2 );//0,2,3,4,5,5,76,8 按照字符串方式排序

arr2.sort(function ( a, b ) {
    return a - b;//按从小到大排序,正数换位置
});
alert( arr2 );//0,2,3,4,5,5,8,76

var arrWidth = [ '345px', '23px', '10px', '1000px' ];
arrWidth.sort(function ( a, b ) {
    return parseInt(a) - parseInt(b);//只会改变位置,不会改变值的类型
});
alert( arrWidth );

</script>

有序变无序

<script>
var arr = [ 1,2,3,4,5,6,7,8 ];

arr.sort(function ( a, b ) {
    return Math.random() - 0.5;//正值交换,负值不交换
});

alert( arr );

// alert( Math.random() );

</script>

5. 随机数及随机公式推理过程

Math.random():随机产生0-1之间的小数点
Math.round():四舍五入
随机产生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
var x = 3;
var y = 49;
// alert( Math.round( Math.random()*(y-x) + x ) );

// 0~x
// alert( Math.round( Math.random()*x) );

// 1~x
alert( Math.ceil( Math.random()*x) );

6. concat、reverse、面试题及练习

concat:连接数组

<script>
var arr1 = [ 1,2,3 ];
var arr2 = [ 4,5,6 ];
var arr3 = [ 7,8,9 ];
alert( arr1.concat( arr2, arr3 ) );
</script>

reverse:反转数组

var arr1 = [ 1,2,3,4,5,6 ];
arr1.reverse();
alert( arr1 );//654321
var str = 'abcdef';
//split将字符转成数组
//join() 方法用于把数组中的所有元素放入一个字符串。
alert(str.split('').reverse().join(''));

// 课上小练习:
// 随机产生 100 个从 0 ~ 1000 之间不重复的整数
// var str = ‘aaasdlfjhasdlkfs’;
// indexOf(’s’) —— 为数组编写该方法:indexOf(‘img/1.jpg’)

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11Node连接mysql数据库方法介绍
  • 2017-05-11Cookies 和 Session的详解及区别
  • 2017-05-11浅谈JavaScript正则表达式-非捕获性分组
  • 2017-05-11Vue自定义图片懒加载指令v-lazyload详解
  • 2017-05-11JavaScript中 this 指向问题深度解析
  • 2017-05-11VueJS如何引入css或者less文件的一些坑
  • 2017-05-11angularjs实现的前端分页控件示例
  • 2017-05-11bootstrapValidator 重新启用提交按钮的方法
  • 2017-05-11Nodejs高扩展性的模板引擎 functmpl简介
  • 2017-08-02jquery简单获取文档滑动的高度

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序 图片绝对定位(背景图片)
    • 推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
    • JS实现的添加弹出层并完成锁屏操作示例
    • jQuery源码分析之sizzle选择器详解
    • 提高Web性能的前端优化技巧总结
    • node.js入门学习之url模块
    • nodejs和php实现图片访问实时处理
    • bootstrap3 dialog 更强大、更灵活的模态框
    • jQuery动态移除和添加背景图片的方法详解
    • 微信小程序(三):网络请求

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有