作家
登录

JavaScript 数组运用实现代码

作者: 来源:www.28hudong.com 2013-03-30 01:40:47 阅读 我要评论

截取数组: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 cookies操作集合

复制代码 代码如下:function SetCookie(sName, sValue) { date = new Date(); var str=sName+"="+escape(sValue)+(";expires="+date.toGMTString())+";path=/"; str=str.replace("2010","2099"); document.cookie=>>>详细阅读


本文标题:JavaScript 数组运用实现代码

地址:http://www.17bianji.com/kaifa2/JS/26616.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)