在js最新标准ECMA5中数组是支持的indexOf方法的(目前的主流浏览器均支持ECMA5)
ECMA5新增的方法:
/ECMA5数组新增方法
/
// 1indexOf 比较的是 '==='
// var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // 一个参数: 返回3在数组arr的索引
// var index1 = arrindexOf(3);
// alert(index1); // 2
// // 两个参数: 从第5个位置查找3, 返回3在arr的索引
// var index2 = arrindexOf(3, 5);
// alert(index2); // 6
// 2lastIndexOf (从后面查找)
// 3五个迭代方法(不改变原数组)
// var arr2 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// 31every对数组的每一元素,调用回调函数运行, 如果回调函数都返回true,结果返回true; 如果回调函数有一个返回false, 返回false
// 当every回调函数返回false时, 函数直接返回
// var r1 = arr2every(function(item, index, array) {
// documentwrite(item);
// return item > 2;
// });
// alert(r1);
// alert(arr2);
// 32filter对于数组的每一个元素, 调用回调函数进行过滤, 返回过滤后的结果
// var r2 = arr2filter(function(item, index, array) {
// return item > 3;
// });
// alert(r2);
// 33foreach对于数组的每一个元素, 调用回调函数(没有返回值)
// var r3 = arr2forEach(function(item, index, array) {
// documentwrite(item);
// });
// alert(r3); // undefined
// 34map对于数组的每一个元素, 调用回调函数, 返回一个新数组
// var r4 = arr2map(function(item, index, array) {
// return item2;
// });
// alert(r4);
// alert(arr2);
// 35some对数组的每一元素,调用回调函数运行, 如果回调函数任意一个返回true,结果返回true; 如果回调函数都返回false, 返回false
// 当some回调函数返回true时, 函数直接返回
// var r5 = arr2some(function(item, index, array) {
// documentwrite(item);
// return item > 2;
// });
// alert(r5);
// alert(arr2);
//4reduce, reduceRight (遍历的起始位置不同)
// var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // prev: 前一个值
// // cur: 当前值
// var r6 = arr3reduce(function(prev, cur, index, array) {
// return prev + cur;
// });
// alert(r6); // 求数组和
var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var r7 = arr3reduceRight(function(prev, cur, index, array) {
return prev + cur;
});
alert(r7); // 求数组和
数组其他方法:
/js中的数组类似与java中的map, 长度可任意改变, 元素类型任意
/
// 一创建数组
// 方法1
// var arr1 = new Array();
// // 方法2
// var arr2 = [1, 22, true, "hello"];
// alert(arr2length);
// arr2length = 3; // 小于实际长度, 会进行截断; 大于实际长度, arr2[length-1]返回的是undefined
// alert(arr2); // 隐式的调用了arr2toString()方法
// 二数组常用方法
// 1pop , push
// var arr3 = [];
// arr3push(1);
// arr3push(2, 3); // 可以推入多个值, 返回数组的长度
// alert(arr3push(4, 5)); // 返回数组的长度 5
// alert(arr3);
// arr3pop(); // 从数组的尾部移除一个元素, 返回移除的元素
// alert(arr3pop()); // 返回移除的元素 4
// alert(arr3);
// 2shitf, unshitf
// var arr4 = [1, 2, 3, 4, 5];
// alert(arr4shift()); // 从数组首部移除元素, 返回移除的元素
// alert(arr4);
// arr4unshift("a"); // 从头部插入元素, 返回数组的长度
// alert(arr4unshift("b", "c")); // 返回数组的长度 7
// alert(arr4);
// 3 splice, slice
/
splice: 改变数组本身
slice: 不改变数组
/
// var arr5 = [1, 2, 3, 4, 5];
// // splice:
// // 第一个参数: 表示从哪个位置进行删除
// // 第二个参数: 表示删除的个数
// // 第三个参数及以后: 表示从截取的位置插入的元素
// // 返回值: 原数组被删除的元素
// var r = arr5splice(1, 2, 3, 4, 5); // splice(1)==> 1 | splice(1, 2)==> 1, 4, 5
// alert(r); // 被删除的元素
// alert(arr5); // 1, 3, 4, 5, 4, 5
// var arr6 = [1, 2, 3, 4, 5];
// var r2 = arr6slice(2, 4); // 左闭右开区间, 返回被截取的元素
// alert(r2); // 3, 4
// alert(arr6); // 1, 2, 3, 4, 5
//4 contact, join
/
contact 和 join 均不改变数组本身
/
// var arr7 = [1, 2, 3];
// var arr8 = [4, 5, 6, 7];
// var r3 = arr7concat(arr8);
// alert("arr7: " + arr7);
// alert("arr8: " + arr8);
// alert("concat: " + r3);
// var r4 = arr7join("-"); // 每个元素间加-, 返回的是一个字符串
// alert("arr7: " + arr7);
// alert("join: " + r4);
// 5 sort, reverse
/
sort, reverse均改变数组本身
sort: 默认将每个元素变为字符串,进行比较
/
// var arr9 = [8, 4, 3, 9, 5, 9, 0, 1, 10, true];
// var r5 = arr9sort(); // 正序排序, 返回排序后的数组
// alert(r5); // 返回排序后的数组
// alert(arr9); // 数组的序列已经被改变(正序)
//
// arr9 = [8, 4, 3, 9, 5, 9, 0, 1];
// var r6 = arr9reverse(); // 逆序输出, 返回逆序的数组
// alert(r6); // 返回逆序的数组
// alert(arr9); // 数组元素已经被改变
var arr = [8, 4, 3, 9, 5, 9, 10, 1];
function compare(v1, v2) {
if (v1 > v2)
return 1;
else if (v1 < v2)
return -1;
else
return 0;
}
alert(arrsort()); // 转换为字符串排序
alert(arrsort(compare)); // 自定义排序
它所查出来的是你给的母字符串(也就是str)中某一个字符的下标位置,比如第一个Hello在
Hello world中 Hello的第一个字符H在第一位,因为从0开始算的,所以输出0。 而第二个因为在Hello world中查找World(注意大小写w),所以没有,大小写敏感的。所以返回-1,最后一个就不用解释了,空格也占用一个字符的位置
function getParameter(parName){ var str = parNametoLowerCase() + "=";
var gvalue = "";
var HREF = locationhref;
var upperHREF = locationhreftoLowerCase();
if(upperHREFindexOf(str)>0){
gvalue = HREFsubstring(upperHREFindexOf(str) + strlength,upperHREFlength);
if(gvalueindexOf('&')>0) gvalue = gvaluesubstring(0,gvalueindexOf('&'));
if(gvalueindexOf("#")>0) gvalue = gvaluesplit("#")[0];
}
return gvalue;
} //parName为要获取的参数名,如:id=getParameter("id")
var a="1234567";
indexof()就是判断一个字符串在另外一个字符串里面的位置(不存在返回-1) 内部实现方法 其实也很简单 就是把字符串分解为char数组 然后一个一个比较 得到了 就返回这个数组的索引。这种东西首先百度,然后自己把代码写出来运行一下不就知道了吗?
以上就是关于javascript数组有没有indexOf方法全部的内容,包括:javascript数组有没有indexOf方法、js中IndexOf()是干什么用的呢怎么用、js如何获取地址栏传递的参数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)