如何使用双for循环重组数组

1使用双循环对两个数组进行重组

2条件
// 1. 比较 Arr1,Arr2 两个数组,返回一个新数组 resultArr
// 2. resultArr 中包含 Arr2 中的所有项目
// 3. 如果 resultArr 中的项目 id 在 Arr1 中存在
// 且其 level 大于 resultArr项目中的level
// 则其 active 熟悉值为 true,否则为 false

const myStacks = [{
  id: 1,
  name: 'JavaScript',
  level: 2,
},{
  id: 2,
  name: 'CSS',
  level: 1,
},{
  id: 4,
  name: 'JQuery',
  level: 1,
}]

const jobStacks = [{
  id: 1,
  name: 'JavaScript',
  level: 1,
},{
  id: 2,
  name: 'CSS',
  level: 3,
},{
  id: 3,
  name: 'HTML',
  level: 2,
}]

3.结果返回

// 结果返回
[{
   id: 1,
   name: 'JavaScript',
   level: 1,
   active: true
 },{
  id: 2,
  name: 'CSS',
  level: 3,
  active: false
},{
  id: 3,
  name: 'HTML',
  level: 2,
  active: false
}]
阅读 4.1k
2 个回答
var resultArr = jobStacks;
            resultArr.forEach(function(i){
                myStacks.forEach(function(j){
                    i.active = (i.id==j.id&&i.level<j.level) ?   true : false;
                 })
            })
            console.log(resultArr)
var arr=jobStacks
for(var i=0;i<arr.length;i++){
    arr[i]['active']=false
}
for(var i=0;i<arr.length;i++){
    for(var j=0;j<myStacks.length;j++){
        if(arr[i].id===myStacks[j].id){
            if(arr[i].level<myStacks[j].level){
                arr[i]['active']=true
            }else{
                arr[i]['active']=false
            } 
        }
    }
}
console.log(arr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题