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 必知必会之closure
Sep 21 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
js获取页面description的方法
May 21 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
Feb 13 Javascript
微信小程序  http请求封装详解及实例代码
Feb 15 Javascript
Vuex提升学习篇
Jan 11 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
JavaScript Date对象功能与用法学习记录
Apr 28 Javascript
webpack4从0搭建组件库的实现
Nov 29 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
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
javascript new fun的执行过程
2010/08/05 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Python实现针对中文排序的方法
2017/05/09 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python 文件转成16进制数组的实例
2018/07/09 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
毕业生求职信
2014/06/10 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
西双版纳导游词
2015/02/03 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python