JavaScript - 用数组助手替换 for 循环



所以今天我正在学习一些 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]);
    }
}

最新更新