JavaScript 循環 跳出循環問題

JavaScript 循環 跳出循環問題
例如有這麼兩組數據

let a = [
                        {
                            "value": "S",
                            "id": 1
                        },
                        {
                            "value": "M",
                            "id": 2
                        },
                        {
                            "value": "L",
                            "id": 3
                        },
                        {
                            "value": "XL",
                            "id": 4
                        },
                        {
                            "value": "XXL",
                            "id": 5
                        },
                        {
                            "value": "XXXL",
                            "id": 6
                        }
                    ]


let b = [1,2,3,4];

需求是這樣的:如果 a 下 有 b下的值 給 對應a下添加 haseB = true

//二重循環? 跑一下看看
a.map((itema)=>{
     b.map((itemb)=>{
          itema.id === itemb?
             itema.haseB = true
        //  要跳出呀,然後繼續執行,但是沒 continue,加個return 看下呢?
           :
             null
       })
})
console.log(JSON.stringify(a))    
 [{"value":"S","id":1,"haseB":false},
{"value":"M","id":2,"haseB":false},
{"value":"L","id":3,"haseB":false},
{"value":"XL","id":4,"haseB":true},
{"value":"XXL","id":5,"haseB":false},
{"value":"XXXL","id":6,"haseB":false}]

//加 return false 結果  emm, 符合預期

[{"value":"S","id":1,"haseB":true},
{"value":"M","id":2,"haseB":true},
{"value":"L","id":3,"haseB":true},
{"value":"XL","id":4,"haseB":true},
{"value":"XXL","id":5},
{"value":"XXXL","id":6}]

//另外一個奇巧技淫
a.map((itema)=>{
  b.find((e)=>{
     if(itema.id===e){
       itema.haseB=true
      return e
   }
 })
})


介紹下find用法:
·
**find()** 方法返回數組中滿足提供的測試函數的第一個元素的值。否則返回 undefined

·

var array1 = [5, 12, 8, 130, 44];

var found = array1.find(function(element) {
  return element > 10;
});

console.log(found);
// expected output: 12
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章