我有以下代码:
const index = myArray.findIndex(
(f) =>
f.name === term1 ||
f.name === term2
);当我尝试在Chrome Dev工具中调试时,如果我在这段代码之后设置了一个断点,index总是显示为undefined。我的理解是,findIndex应该始终返回一个number,这是满足条件的数组的第一个索引,如果从未满足,则返回-1。
如果我在这段代码之后立即中断,并使用控制台手动键入代码,但没有将其分配给任何内容,则控制台会显示正确的索引号。问题不在于在数组中找到的项。它就在那里,但在调试器中它只会显示为undefined。
为什么此代码返回的是undefined而不是number
*我已经在Firefox和Edge中尝试过了。这也是同样的问题。
发布于 2021-03-06 04:58:22
我只是稍微扩展了一下你的代码:
const term1 = 'aaa';
const term2 = 'bbb';
const myArray = [ { name: 'ccc' }, { name: 'ddd' }, ];
const index = myArray.findIndex(
(f) =>
f.name === term1 ||
f.name === term2
);
console.log(index);我总是得到-1的预期输出,或者如预期的那样。我试着摆弄各种组合和类型--不行。
在我的环境中,你的代码运行得很好--所以我猜问题出在别的地方。
对不起-这不是一个答案-只是一些输入:-)
https://stackoverflow.com/questions/66496978
复制相似问题