簡體   English   中英

我如何限制數組只存儲 3 個對象?

[英]How do i limit the array to store only 3 objects in it?

計數器變量

 let counter = 2;

輪播對象

let carousel = {
    "carousel": {
        "title": "",
        "description": "",
        "cards": []
    }
}

卡片對象

  let card = {
      "card": {
          "title": "Please select the market areas ",
          "description": "",
           "links": []
      }
  }

鏈接對象

  let link = {
    "type": "post_message",
    "title": " ",
    "value": " "
  }

我需要在卡片對象中存儲 3 個鏈接對象,如果有超過 3 個鏈接對象,應該創建一個新的卡片對象

下面是我寫的函數

    for (let i = 0; i < functional_categories_links.length; i++) {
        if (card.card.links.length <= counter) {
            card.card.links.push(link.value = functional_categories_links[i]);
        } else {
            //card.card.links.push(link.value = functional_categories_links[i]);
            carousel.carousel.cards.push(card);
            card.card.links.push(link.value = functional_categories_links[i])
            counter += counter;
        }
    }
 return carousel;
 };

我嘗試了深拷貝的方法,因為你所做的一切都大致正確,但由於淺拷貝,它可能會更新同一個對象。

let functional_categories_links = [{type:"A"},{type:"B"},{type:"C"},{type:"D"},{type:"E"}];
let carousel={carousel : {cards : []}};
let card = {card : {links : []}}; 
let cardCopy = JSON.parse(JSON.stringify(card)); //Making Deep Copy
for(let i=0;i<functional_categories_links.length;i++){ //Iterating through the links
if(cardCopy.card.links.length<3){
   cardCopy.card.links.push(functional_categories_links[i]);
}
else{
   carousel.carousel.cards.push(cardCopy); //When size limit exceeded - then pushing into array
   cardCopy=JSON.parse(JSON.stringify(card));
   i--;
}
}
if(cardCopy.card.links.length!=0){
     carousel.carousel.cards.push(cardCopy);
}

我所做的,遵循大致相同的方法,我已經初始化了“卡片”對象的深層副本,並且每當超過限制時(即您想在一張卡片中存儲 3 個鏈接,然后在新的卡片中存儲)再次創建深層卡的副本。

注意(只是認為股) -我與傳播經營者努力(我想蔓延運營商確實屬性的深層副本),現在才知道傳播經營者正是不深復制的屬性。

在此處輸入圖片說明

希望你需要類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM