我有一个函数,应该找到索引与其值相等的数组的第一个元素。我需要得到index = 1
,但我得到-1
。
function indexEqualsValue(a) {
var currentElement = -1;
a.some(function(element, index) {
if (element === index) {
return element
}
})
return currentElement
}
console.log(indexEqualsValue([-5, 1, 2, 3, 4, 5, 7, 10, 15]))
答案 0 :(得分:2)
您永远不会将currentElement
分配给找到的元素,因此它始终保留为-1
。使用find
或findIndex
可能更合适,它们返回找到的元素(或找到的索引)-some
返回一个 boolean ,但是您不使用您的.some
通话结果。尝试以下方法:
function indexEqualsValue(a) {
return a.findIndex((element, index) => element === index)
}
console.log(indexEqualsValue([-5, 1, 2, 3, 4, 5, 7, 10, 15]))
console.log(indexEqualsValue([-5, 0, 2, 3, 4, 5, 7, 10, 15]))
console.log(indexEqualsValue([-5, 2, 3, 4, 5, 7, 10, 15]))