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 validate 中文API 附validate.js中文api手册
Jul 31 Javascript
两个Javascript小tip资料
Nov 23 Javascript
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
jquery实现简单的遮罩层
Jan 08 Javascript
Easyui在treegrid添加控件的实现方法
Jun 23 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
详解Nuxt.js 实战集锦
Nov 19 Javascript
uniapp 微信小程序 自定义tabBar 导航
Apr 22 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
mysql建立外键
2006/11/25 PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
解析PHP提交后跳转
2013/06/23 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
Python列表删除的三种方法代码分享
2017/10/31 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
程序员跳槽必看面试题总结
2013/06/28 面试题
技术合作协议书范本
2014/04/18 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
歌剧魅影观后感
2015/06/05 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python