所以今天我正在学习一些 ES6 数组助手,我想用它们改变我现有的 for 循环,但我无法得到与我使用 for 循环相同的结果
function comment(){
let index;
for(let i = 0; i < commentArray.length; i++){
if(commentArray[i]._id == req.params.commentId){
index = commentArray.indexOf(commentArray[i]);
}
}
return index;
}
var com = comment();
它是nodejs,我正在尝试从数据库中获取元素索引,而不是从中提取,我的代码工作得很好,但我想用数组助手更改它,我想我需要找到助手,但我不能让它工作!
你可以用
这个使用Array#findIndex
的单行代码替换你的 for 循环:
let index = commentArray.findIndex(comment => comment._id === req.params.commentId);
当此行执行时,它将分配注释索引,该索引具有与req.params.commentId
相同的属性_id
。
如果你想根据
某个条件在数组中查找项目的索引,你可以使用 findIndex
commentArray.findIndex(comment => comment._id === req.params.commentId)
同样使用您当前的 for loop
代码,我认为您需要在找到索引后立即返回索引,而不是让循环迭代到最后。
for(let i = 0; i < commentArray.length; i++){
if(commentArray[i]._id == req.params.commentId){
return commentArray.indexOf(commentArray[i]);
}
}