javascript数组有没有indexOf方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript数组有没有indexOf方法相关的知识,希望对你有一定的参考价值。

在js最新标准ECMA5中数组是支持的indexOf方法的(目前的主流浏览器均支持ECMA5)


ECMA5新增的方法:

/**
 * ECMA5数组新增方法
 */

// 1.indexOf 比较的是 '==='
// var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // 一个参数: 返回3在数组arr的索引
// var index1 = arr.indexOf(3);
// alert(index1); // 2
// // 两个参数: 从第5个位置查找3, 返回3在arr的索引
// var index2 = arr.indexOf(3, 5);
// alert(index2); // 6

// 2.lastIndexOf (从后面查找)

// 3.五个迭代方法(不改变原数组)
// var arr2 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// 3.1.every对数组的每一元素,调用回调函数运行, 如果回调函数都返回true,结果返回true; 如果回调函数有一个返回false, 返回false
// 当every回调函数返回false时, 函数直接返回
// var r1 = arr2.every(function(item, index, array) 
// document.write(item);
// return item > 2;
// );
// alert(r1);
// alert(arr2);

// 3.2.filter对于数组的每一个元素, 调用回调函数进行过滤, 返回过滤后的结果
// var r2 = arr2.filter(function(item, index, array) 
// return item > 3;
// );
// alert(r2);

// 3.3.foreach对于数组的每一个元素, 调用回调函数(没有返回值)
// var r3 = arr2.forEach(function(item, index, array) 
// document.write(item);
// );
// alert(r3); // undefined

// 3.4.map对于数组的每一个元素, 调用回调函数, 返回一个新数组
// var r4 = arr2.map(function(item, index, array) 
// return item*2;
// );
// alert(r4);
// alert(arr2);

// 3.5.some对数组的每一元素,调用回调函数运行, 如果回调函数任意一个返回true,结果返回true; 如果回调函数都返回false, 返回false
//  当some回调函数返回true时, 函数直接返回
// var r5 = arr2.some(function(item, index, array) 
// document.write(item);
// return item > 2;
// );
// alert(r5);
// alert(arr2);

//4.reduce, reduceRight (遍历的起始位置不同)
// var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // prev: 前一个值
// // cur: 当前值
// var r6 = arr3.reduce(function(prev, cur, index, array) 
// return prev + cur; 
// );
// alert(r6); // 求数组和

var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var r7 = arr3.reduceRight(function(prev, cur, index, array) 
return prev + cur; 
);
alert(r7); // 求数组和


数组其他方法:

/**
* js中的数组类似与java中的map, 长度可任意改变, 元素类型任意
 */

// 一.创建数组
// 方法1.
// var arr1 = new Array();
// // 方法2.
// var arr2 = [1, 2.2, true, "hello"];
// alert(arr2.length);
// arr2.length = 3; // 小于实际长度, 会进行截断; 大于实际长度, arr2[length-1]返回的是undefined
// alert(arr2); // 隐式的调用了arr2.toString()方法

// 二.数组常用方法
// 1.pop , push
// var arr3 = [];
// arr3.push(1);
// arr3.push(2, 3); // 可以推入多个值, 返回数组的长度
// alert(arr3.push(4, 5)); // 返回数组的长度 5
// alert(arr3);
// arr3.pop(); // 从数组的尾部移除一个元素, 返回移除的元素
// alert(arr3.pop()); // 返回移除的元素 4
// alert(arr3);

// 2.shitf, unshitf
// var arr4 = [1, 2, 3, 4, 5];
// alert(arr4.shift()); // 从数组首部移除元素, 返回移除的元素
// alert(arr4);
// arr4.unshift("a"); // 从头部插入元素, 返回数组的长度
// alert(arr4.unshift("b", "c")); // 返回数组的长度 7
// alert(arr4);

// 3. splice, slice 
/**
 * splice: 改变数组本身
 * slice: 不改变数组
 */
// var arr5 = [1, 2, 3, 4, 5];
// // splice: 
// //        第一个参数: 表示从哪个位置进行删除
// //        第二个参数: 表示删除的个数
// //        第三个参数及以后: 表示从截取的位置插入的元素
//          //        返回值: 原数组被删除的元素
// var r = arr5.splice(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 = arr6.slice(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 = arr7.concat(arr8);
// alert("arr7: " + arr7);
// alert("arr8: " + arr8);
// alert("concat: " + r3);

// var r4 = arr7.join("-"); // 每个元素间加-, 返回的是一个字符串
// 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 = arr9.sort(); // 正序排序, 返回排序后的数组
// alert(r5); // 返回排序后的数组
// alert(arr9); // 数组的序列已经被改变(正序)
//
// arr9 = [8, 4, 3, 9, 5, 9, 0, 1]; 
// var r6 = arr9.reverse(); // 逆序输出, 返回逆序的数组
// 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(arr.sort()); // 转换为字符串排序
alert(arr.sort(compare)); // 自定义排序

参考技术A 有,Array.prototype.indexOf, 但是IE8及以下浏览器不支持

javascript学习系列(14):数组中的indexOf方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励

1前言

在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说

indexof不多说把代码编辑器打开

2编辑器部分 

 3代码部分

var  color  = ['歌谣', '优秀',"很强"];
var  color2  =  color.indexOf("很强")

var  color3 =  color.indexOf("很大")
console.log(color2);
console.log(color3);
//找到对应下标 找不到返回-1

4运行结果

 

5总结

//找到对应下标 找不到返回-1

以上是关于javascript数组有没有indexOf方法的主要内容,如果未能解决你的问题,请参考以下文章

javaScript中的indexOf使用方法

javascript indexOf() - 字符串和数组方法

JavaScript——数组的indexOf()方法在IE8中的兼容性问题

Javascript中的数组去重-indexof方法

javascript学习系列(14):数组中的indexOf方法

JavaScript的奇技淫巧