js某一元素在数组中的索引

第一种:数组遍历

1 function search(arr,dst){
2     var i = arr.length;
3     while(i-=1){
4         if (arr[i] == dst){
5            return i;
6         }
7     }
8     return false;
9 }

使用方法:

var a=[1,2,3,4];
search(a,3);//返回2

第二种:indexOf()

var arr=[1,2,3,4]
arr.indexOf(2);//返回1

在某些IE版本中,不支持indexOf(),就需要先判断Array是否有indexOf()方法

 1 var arr=[1,2,3,4]
 2 if (!Array.indexOf){
 3     Array.prototype.indexOf=function(obj){
 4     var i=this.length;
 5         while(i-=1){
 6             if(this[i]==obj){
 7                 return i;
 8             }
 9         }return -1;
10     }
11 }
12 arr.indexOf(3);//返回2

三、构造函数

原理就是方法二中兼容IE所采用的方法一样,构造一个新的函数

 1 Array.prototype.weizhi=function(obj){
 2   var i=this.length;
 3   for(i;i!=0;i-=1){
 4     if(this[i]===obj){
 5       return i;
 6     }
 7   }return false;
 8 }
 9 var arr=[1,2,3,4]
10 arr.wenzi(3);//返回2

原文地址:https://www.cnblogs.com/newgold/p/4877354.html

原文地址:https://www.cnblogs.com/hermitks/p/9886692.html

时间: 2024-10-26 19:12:54

js某一元素在数组中的索引的相关文章

获取某个数组元素 在 数组中的索引

例如我们有数字: var arr1 =['aa','bb','cc','dd','ee','ff','gg','hh']; var arr2 = [ {id:1,name:'lanyan'}, {id:2,name:'wanming'}, {id:3,name:'tingting'}, {id:4,name:'songsong'} ]; var arr2 = [ {id:1,name:'lanyan'}, {id:2,name:'wanming'}, {id:3,name:'tingting'}

js如何移除数组中指定索引的项

js如何移除数组中指定索引的项:在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路.代码实例如下: var array=[]; array[0]="蚂蚁部落一"; array[1]="蚂蚁部落二"; array[2]="蚂蚁部落三"; array[3]="蚂蚁部落四"; array[4]="

js学习笔记之在数组中删除重复的元素自保留一个

遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 <script type="text/javascript"> var student = ['qiang','ming','tao','li','liang','you','qiang','tao']; function unique(arr){ // 遍历arr,把元素分别放入tmp数组(不存在才放) var tmp = new Array(); for(var

求出数组前面k个元素或数组中元素大于一半的元素(快速排序与堆排序的灵活运用)

写这个的目的在于,说明快速排序的灵活运用.我们来看下关于快速排序中的一部分关键代码: 快速排序代码: int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quicksort(int left,int right) { int i,j,t,temp; if(left>right) return; temp=a[left]; //temp中存的就是基准数 i=left; j=right; while(i!=j) { //顺序很重要,要先从右边开始找 while(a[j

JS 原生 push对象到数组中遇到的问题

在做小程序开发时,需要将一个对象push到数组中,第一次写法是 for(var j in that.data.goods ){//遍历商品信息 获取商品id // console.log(that.data.goods[j].id) for(var h in that.data.cart.list){//遍历缓存中购物车列表,获取下标 if(j==h){ // var goods_id_list ={'id':'','num':''};//定义一个接受对象 console.log(that.da

链表的数组实现 令链表的所有元素在数组中保持紧凑 《算法导论》10.3-4

让长度为m的链表的所有元素占用数组的前m个位置. 假设数组总长度为SIZE,用一个变量freeHead记录空闲表的起始下标, 则[freeHead, SIZE)的范围内的对象全部属于自由表.用一个Object对象list表示链表头. 当从链表的任意位置删除元素时,比如下标为pos的元素,那么就让下标为pos和freeHead-1的元素互换在链表中的位置,然后删除互换后下标为freeHead-1的元素,也就相当于删除了互换前下标为pos的元素,这样一来,就可以保证所删除元素的位置始终是自由表头fr

二分法查找数字在数组中的索引,确定数字对应的索引

场景: 一组数字类型的数据,给出一个数字,求出数字对应的索引 例如: int[] arr=new int[]{1,2,3,4,10,20,30,50,90,100} 我们要求55对应的索引位置. 假设arr数组中存储是数字范围的起始值(按范围求索引也可以应用此算法场景) 那么索引对值的表格为: 索引 1 2 3 4 5 6 7 8 9 10 值 1 2 3 4 10 20 30 50 90 100 · 我们使用二分法来求出50对应应该所在索引位置 一.实例解析 算法如下所示 int Search

js 按元素向数组中最佳删除元素

追加::: var a = [];// 创建数组 a.push(1); // 添加到最后 a.unshift(); // 添加到第一个位置 删除:::如果你没有使用第三方框架,有类似的扩展功能可以根据指定值,返回元素的下标的话,只能自己先查找,然后再删除. <script type="text/javascript"> Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length;

笔试算法题(32):归并算法求逆序对 &amp; 将数组元素转换为数组中剩下的其他元素的乘积

出题:多人按照从低到高排成一个前后队列,如果前面的人比后面的高就认为是一个错误对: 例如:[176,178,180,170,171]中的错误对 为 <176,170>, <176,171>, <178,170>, <178,171>, < 180,170>, <180,171>. 现在要求从一个整数序列中找出所有这样的错误对: 分析: 逆序对(Inversion Pair):在N个可判断大小的数中,逆序对的数量为[0,n(n-1)/2