JavaScript 数组运用实现代码


Posted in Javascript onApril 13, 2010

截取数组:slice(startIndex,endIndex):

返回数组中指定开始位置倒结束位置的数组。不改变原数组内容。

另外还有一个重要的方法,插入、删除或替换数组元素方法:
splice(startIndex,howmany,element1~elementX):会修改原数组内容。参数含义分别为:“指定开始位置”,“删除多少个元素个数(可以为0)”,“添加到数组中的新元素(从startIndex下标开始)”。

相关运用
//题目一:"A[B]C[D]E[F]G"将其分为两个数组,分别是 ACEG 和 [B][D][F].

function QuestionFn1() { 
var str = "A[B]C[D]E[F]G"; 
var oGetTwoArray = new GetTwoArray(); 
//取左右括号中的值 
oGetTwoArray.GetLeftAndRightValue(str); 
oGetTwoArray.GetNoLeftAndRightValue(str); 
var array1 = oGetTwoArray.arrBetweenLeftRight; 
var array2 = oGetTwoArray.arrNoLeftRight; 
alert(array1.join("")); 
alert(array2.join("")); 
} 
//找到左右括号的index 
function GetTwoArray() { 
this.indexLeft = 0; //左括号索引 
this.indexRight = 0; //右括号索引 
this.arrBetweenLeftRight = []; //数组:存放左右括号中的字母 
this.arrNoLeftRight = []; //数组:存放没有括号包围的字母 
//取左右括号中的值 
this.GetLeftAndRightValue = function(str) { 
//找到字符串中左括号的index 
this.indexLeft = str.indexOf('['); 
this.indexRight = str.indexOf(']'); 
//取括号中的值(包含括号) 
var value = str.substring(this.indexLeft, this.indexRight + 1); 
//存放到数组中 
this.arrBetweenLeftRight.push(value); 
//剩下的str 
var restStr = str.substr(this.indexRight + 1); 
//如果还有左右括号则继续找 
if (restStr.indexOf('[') != -1 && restStr.indexOf(']') != -1) { 
this.GetLeftAndRightValue(restStr); 
} 
} 
//取没有左右括号包围的值 
this.GetNoLeftAndRightValue = function(str) { 
//找到字符串中左括号的index 
this.indexLeft = str.indexOf('['); 
this.indexRight = str.indexOf(']'); 
//取没有左右括号包围的值(跟着右括号的第一个) 
var value = str.substring(0, 1); 
if (value != '[') { //因为第一个就有可能就是左括号 
//存放到数组中 
this.arrNoLeftRight.push(value); 
} 
//剩下的str 
var restStr = str.substr(this.indexRight + 1); 
//如果还有左右括号则继续找 
if (restStr.indexOf('[') != -1 && restStr.indexOf(']') != -1) { 
this.GetNoLeftAndRightValue(restStr); 
} 
//剩下的没有左右括号了,就全部添数组里去 
else if (restStr.indexOf('[') == -1 && restStr.indexOf(']') == -1) { 
this.arrNoLeftRight.push(restStr); 
} 
} 
}

//题目二:有两个有序整数数组,例如【1, 3, 5, 7, 9】和【2, 4, 6, 7, 8, 10, 13】,设计一个函数使两个数组合并,并且剔除掉两个数组里重复的元素.
function QuestionFn2() { 
var arr1 = [1, 3, 5, 7, 9]; 
var arr2 = [2, 4, 6, 7, 8, 10, 13]; 
//循环arr2中的每一个元素 去跟 arr1中的每一个元素 比较 
for (var j = 0; j < arr2.length; j++) { 
for (var i = 0; i < arr1.length; i++) { 
//如果第二个数组中的数 小于数组一中的 某个数 则插到他前面 
if (arr2[j] < arr1[i]) { 
arr1.splice(i, 0, arr2[j]); 
break; 
} 
//相等则剔除 
else if (arr2[j] == arr1[i]) { 
arr1.splice(i, 1, arr2[j]); 
break; 
} 
//如果 arr2[j] 比 数组1中的 最后一个数还大 则插到最后面去 
else if (arr2[j] > arr1[arr1.length - 1]) { 
arr1.push(arr2[j]); 
} 
} 
} 
alert(arr1.toString()); 
}

//题目三:给定一个整数数组,例如【2, 4, 5, 6, 7, 8】和一个数字,例如10,请设计一个函数找出两个元素,并且使这两个数的和为给定数字,并打印出来.
function QuestionFn3() { 
var sum = window.prompt("请输入数组中两数相加的和", 10); 
var arr = [2, 4, 5, 6, 7, 8]; 
var isFind = false; //记录是否存在 
for (var i = 0; i < arr.length; i++) { 
for (var j = i + 1; j < arr.length; j++) { 
if (arr[j] + arr[i] == sum) { 
alert(arr[i] + "+" + arr[j] + "=" + sum); 
isFind = true; 
} 
} 
} 
//如果没有找到 
if (!isFind) { 
alert("数组中没有两数相加等于" + sum); 
} 
}

更多javascript 数组基础可以参考
javascript数组使用调用方法汇总
Javascript 相关文章推荐
javascript  Error 对象 错误处理
May 18 Javascript
jQuery之ajax删除详解
Feb 27 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Oct 05 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
Jan 10 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
AngularJS全局警告框实现方法示例
May 18 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
js使用swiper实现层叠轮播效果实例代码
Dec 12 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 #Javascript
Javascript 判断Flash是否加载完成的代码
Apr 12 #Javascript
使用dynatrace-ajax跟踪JavaScript的性能
Apr 12 #Javascript
javascript URL编码和解码使用说明
Apr 12 #Javascript
!DOCTYPE声明对JavaScript的影响分析
Apr 12 #Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 #Javascript
javascript cookies 设置、读取、删除实例代码
Apr 12 #Javascript
You might like
用PHP实现文件上传二法
2006/10/09 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
PHP微信API接口类
2016/08/22 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python输出9*9乘法表的方法
2015/05/25 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python中join函数简单代码示例
2018/01/09 Python
python实现音乐下载器
2018/04/15 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
财务副总经理工作职责
2013/11/25 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书