Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用RegExp获取一个数组项的索引_Javascript_Arrays_Regex - Fatal编程技术网

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的名字不会出现在自动填充中