Javascript 使用RegExp获取一个数组项的索引
我有一个数组Javascript 使用RegExp获取一个数组项的索引,javascript,arrays,regex,Javascript,Arrays,Regex,我有一个数组 var arr=['8888','2222 | 1','6666','4444 | 2'] 我需要得到包含第一个数字的项目索引(如果符号存在,则在|之前)。下面是有用的RegExp,你可以使用它,工作 var result = new RegExp('\\b' + value.replace(/^(.*)\|.*$/, '$1') + '\\b').test(arr); value = '2222'; \\true value = '222'; \\false value = '
var arr=['8888','2222 | 1','6666','4444 | 2']
我需要得到包含第一个数字的项目索引(如果符号存在,则在|
之前)。下面是有用的RegExp,你可以使用它,工作
var result = new RegExp('\\b' + value.replace(/^(.*)\|.*$/, '$1') + '\\b').test(arr);
value = '2222'; \\true
value = '222'; \\false
value = '2222|1'; \\false
但我需要索引,而不是项目是否存在
value = '8888'; \\0
value = '2222'; \\1
value = '222'; \\-1
value = '2222|1'; \\-1
使用
var arr=['8888','2222 | 1','6666','4444 | 2']
const getIndex=(arr,n)=>arr.findIndex(a=>a.split(“|”)[0]==n);
日志(getIndex(arr,“8888”))
日志(getIndex(arr,“2222”))
日志(getIndex(arr,“222”))
log(getIndex(arr,“2222 | 1”))
使用
var arr=['8888','2222 | 1','6666','4444 | 2']
const getIndex=(arr,n)=>arr.findIndex(a=>a.split(“|”)[0]==n);
日志(getIndex(arr,“8888”))
日志(getIndex(arr,“2222”))
日志(getIndex(arr,“222”))
console.log(getIndex(arr,“2222 | 1”))
好的,现在它回答了这个问题。看起来我需要什么,但是旧版IE在findIndex()上有问题,可能是ES5解决方案?@alexso您可以将添加到一个js文件中。否则,您必须为loop@alexso-如果您不想使用polyfill,可以执行var index=-1;arr.some(函数(a,i){if(a.split(“|”)0]==n{index=i;返回true;})
一些
是ES5。@alexso当你写的时候,@t
你会得到建议的名字,你可以选择它。你只能在评论中提到句柄。因为你已经@me了,t.J的名字不会出现在autofilllOkay中,现在它回答了这个问题。看起来是我需要的,但是老IE在findIndex()上有问题,可能是某种ES5解决方案?@alexso您可以将添加到您的一个js文件中。否则您必须使用for
loop@alexso-如果不想使用多边形填充,可以执行var index=-1;arr.some(函数(a,i){If(a.split(“|”)[0]==n){index=i;返回true;})
有些
是ES5。@所以当你写时,@t
你会得到建议的名字,你可以选择它。你只能在评论中提到句柄。因为你已经@me了,t.J的名字不会出现在自动填充中