根据2个值获取数组中所在位置

fanqieo 2019-08-27 11:24:05
var array=[1,2,3,4,1,3,1,4,1,5]比如这样的一个数组,会重复
现在传入值 3,1 要能获返回索引6,也就是根据3,1这个2个值来确定
要怎么实现呢?
...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
suwa_daimyoujin 2019-08-27
  • 打赏
  • 举报
回复
var array=[1,2,3,4,1,3,1,4,1,5]; (function (m,n) { window.a = m; window.a_nex=n; })(3,1); for(var i=0;i<=array.length-1;i++){ if(array[i]==a&&array[i+1]==a_nex){ console.log(i+1); } }
文盲老顾 2019-08-27
  • 打赏
  • 举报
回复
Array.prototype.arrIndexOf = function(x){
  for(var i=0;i<this.length-x.length+1;i++){
    var arr = this.slice(i,i+x.length);
    var r = true;
    for(var j=0;j<x.length;j++){
      if(x[j]!=arr[j]){
        r=false;
        break;
      }
    }
    if(r){return i;}
  }
  return -1;
}
console.log([1,2,3,4,1,3,1,4,1,5].arrIndexOf([3,1]))
变量冲突了。。。
文盲老顾 2019-08-27
  • 打赏
  • 举报
回复

Array.prototype.arrIndexOf = function(arr){
  for(var i=0;i<this.length-x.length+1;i++){
    var arr = this.slice(i,i+x.length);
    var r = true;
    for(var j=0;j<x.length;j++){
      if(x[j]!=arr[j]){
        r=false;
        break;
      }
    }
    if(r){return i;}
  }
  return -1;
}
console.log([1,2,3,4,1,3,1,4,1,5].arrIndexOf([3,1]))
天际的海浪 2019-08-27
  • 打赏
  • 举报
回复
更新回复

function getindex(na,oa) {
	var index = 0;
	w: while ((index = na.indexOf(oa[0],index+1))!=-1) {
		for (var i = 1; i < oa.length; i++) {
			if (na[index+i]!=oa[i])
				continue w;
		}
		return index+1;
	}
	return "没找到";
}
alert(getindex([1,2,3,4,1,3,1,4,1,5], [3,1]));
天际的海浪 2019-08-27
  • 打赏
  • 举报
回复
数组的索引正常应当从0开始算,如果要从1开始算则返回值加1。 return index+1;
天际的海浪 2019-08-27
  • 打赏
  • 举报
回复

function getindex(na,oa) {
	var index = 0;
	w: while ((index = na.indexOf(oa[0],index+1))!=-1) {
		for (var i = 1; i < oa.length; i++) {
			if (na[index+i]!=oa[i])
				continue w;
			break w;
		}
	}
	return index;
}
alert(getindex([1,2,3,4,1,3,1,4,1,5], [3,1]));

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧