视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JavaScript数组运用实现代码_javascript技巧
2020-11-27 20:48:39 责编:小采
文档


截取数组: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数组使用调用方法汇总

下载本文
显示全文
专题