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

发布于 2022-09-11 15:52:03 字数 793 浏览 18 评论 0

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
}]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小梨窩很甜 2022-09-18 15:52:04
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)
预谋 2022-09-18 15:52:03
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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文