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 相关文章推荐
Jquery 弹出层插件实现代码
Oct 24 Javascript
javascript检测浏览器flash版本的实现代码
Dec 06 Javascript
用jquery存取照片的具体实现方法
Jun 30 Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
javascript数组拍平方法总结
Jan 20 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
Python版实现微信公众号扫码登陆
May 28 Javascript
vue+axios 拦截器实现统一token的案例
Sep 11 Javascript
原生js实现俄罗斯方块
Oct 20 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
杏林同学录(三)
2006/10/09 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php经典算法集锦
2015/11/14 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
解读ES6中class关键字
2017/11/20 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
python如何实现内容写在图片上
2018/03/23 Python
Python实现快速计算词频功能示例
2018/06/25 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
什么是serialVersionUID
2016/03/04 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书