JavaScript 数组运用实现代码
JavaScript 数组运用实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:截取数组:slice(startIndex,endIndex):返回数组中指定开始位置倒结束位置的数组。不改变原数组内容。另外还有一个重要的...

截取数组: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教程学习
编程开发子分类