[英]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.