当数组中的值与索引相同时,代码将返回数组中的最低索引.如果没有匹配,我应该返回-1.例如:
indexEqualsValue([-8,0,2,5])
output: 2 //array[2] == 2
indexEqualsValue([-1,0,3,6])
output: -1 //no matches
Run Code Online (Sandbox Code Playgroud)
当没有匹配或者数组的长度为零时,代码可以工作,但在其他时候则不行.我认为问题是我的if语句中的第一个条件.我不一定想要一个答案,更多关于我应该检查/重写的提示.
谢谢!
function indexEqualsValue(a) {
return a.reduce((acc, currV, currI) => {
if (currI === currV) {
return currV;
}
return -1;
}, 0);
}
Run Code Online (Sandbox Code Playgroud) 我需要一个正则表达式来匹配下面的数字数组,这些数字可以嵌套.这些应该通过:
[]
[1, 2, 3]
[1, 2, 3, [1,2,3], 5]
Run Code Online (Sandbox Code Playgroud)
但以下应该不通过测试:
abc
1
[1,2,3
[#]
Run Code Online (Sandbox Code Playgroud)
这有效:
/(^\[)(\d+\,|\s(?:(|\,))|\d+|\s\[|\]\,)*(\]$)/g
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来实现相同的结果.我试过前瞻但不完全理解它并且无法使它工作.