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中常用的SET和GET
Jan 13 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
Nov 30 Javascript
常见JS验证脚本汇总
Dec 01 Javascript
Node.js实用代码段之获取Buffer对象字节长度
Mar 17 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
原生javascript实现连连看游戏
Jan 03 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
vue点击按钮实现简单页面的切换
Sep 08 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数组的概述及分类与声明代码演示
2013/02/26 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
基于python历史天气采集的分析
2019/02/14 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
基层党组织公开承诺书
2014/03/28 职场文书
外国人聘用意向书
2014/04/01 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
如何判断pytorch是否支持GPU加速
2021/06/01 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS