Javascript中嵌套for循环的替代方案

Javascript中嵌套for循环的替代方案,javascript,reactjs,loops,for-loop,nested,Javascript,Reactjs,Loops,For Loop,Nested,我需要取数组1中的一个元素,并将其与数组2中的其他元素进行比较,以查看是否存在匹配项。我需要对数组1中的每个元素执行此操作 for ( let i = 0, j = userArray.length; i < j; i++) { for ( let c = 0, d = userArray.length; c < d; c++) { object = { id: userArray[i].accoun

我需要取数组1中的一个元素,并将其与数组2中的其他元素进行比较,以查看是否存在匹配项。我需要对数组1中的每个元素执行此操作

for ( let i = 0, j = userArray.length; i < j; i++) {
            for ( let c = 0, d = userArray.length; c < d; c++) {
              object = {
                id: userArray[i].account,
                name: userArray[i].name,
                title: "",
                rating: ""
              }

              if ( userArray[i].account === accountArray[c].id) {

                object.title = accountArray[c].title.title

              }

              if (object.title !== ""){
                objectArray.push(object)

              }

            }

          }
有没有更有效的方法来解决这个问题


理想的结果是将accountArray的每个元素与userArray的每个单独元素进行比较,以搜索匹配项

您可以使用Array.find或Array.filter

Array.find-返回第一个匹配的元素

array.finditem=>item.id==1

Array.filter-返回所有匹配元素的数组

array.filteritem=>item.id==1

希望有帮助

您可以使用array reduce方法过滤用户数组,并将其映射到具有组合结果的新数组中

下面是一个带有存根数据的示例:

常量用户数组=[ {帐户:1,名称:'用户1'}, {帐户:2,名称:'用户2'}, {帐户:3,名称:'user 3'}, {帐户:4,名称:'user 4'}, {帐户:5,名称:'user 5'} ]; 常量accountArray=[ {id:1,名称:'account 1',标题:'account 1 title'}, {id:3,名称:'account 3',标题:'account 3 title'}, {id:5,名称:'account 5',标题:'account 5 title'} ]; const mergedList=userArray.reduceac,u=>{ const account=accountArray.finda=>a.id==u.account; 如果帐户{ acc.push{ id:美国账户, 姓名:u.name, 标题:account.title, 评级: } } 返回acc; }, [];
console.logmergedList;看起来您希望其中一个循环迭代accountArray数组。考虑到使用情况,可能是内部循环。它确实在if语句中迭代account数组,因为我只是在索引中使用计数器!:内部循环将根据userArray的长度继续,这似乎是不正确的。如果数组长度不相同,您将遇到异常userArray比accountArray长,或者您将错过accountArray中的元素userArray比accountArray短。这两个数组长度相同,但都有适当的注释,并将修改为零。我真的很想听到更多。为什么不使用map而不是reduce呢?最后,我们在一个数组上循环,然后在每个元素上使用.find执行另一个循环@Ajay-我不清楚如何使用map实现这一点。把你的建议贴出来作为答案,我来看看。