您好,欢迎访问一九零五行业门户网

JavaScript 数组运用实现代码_javascript技巧

截取数组: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 for (var i = 0; i //如果第二个数组中的数 小于数组一中的 某个数 则插到他前面
if (arr2[j] 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 for (var j = i + 1; j if (arr[j] + arr[i] == sum) {
alert(arr[i] + + + arr[j] + = + sum);
isfind = true;
}
}
}
//如果没有找到
if (!isfind) {
alert(数组中没有两数相加等于 + sum);
}
}
更多javascript 数组基础可以参考
javascript数组使用调用方法汇总
其它类似信息

推荐信息