我有一个函数,它应该找到索引和它的值相等的数组的第一个元素。我需要得到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]))
发布于 2018-08-17 06:48:22
您永远不会将currentElement
重新赋值给找到的元素,因此它始终保持为-1
。使用find
或findIndex
可能更合适,后者返回找到的元素(或找到的索引)- some
返回布尔值,但您没有使用.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]))
https://stackoverflow.com/questions/51886259
复制相似问题