3 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
由于在瀏覽器中var x = 1等于var window.x = 1,您可以使用全局對象創(chuàng)建動態(tài)變量名。
var rarityName = data.card_variations[0].card_rarity;
window[rarityName] = window[rarityName] ? window[rarityName] + 1 : 1;
但最好只創(chuàng)建一個作用域?qū)ο螅鼤槟愦鎯τ?jì)數(shù)。
var counts = {}; // declare once in global scope somewhere first
//
var rarityName = data.card_variations[0].card_rarity;
counts[rarityName] = counts[rarityName] ? counts[rarityName] + 1 : 1;
所以它會是這樣的:
var counts = {};
jQuery.each(val, function (i, data) {
var rarityName = data.card_variations[0].card_rarity;
counts[rarityName] = counts[rarityName] ? counts[rarityName] + 1 : 1;
var friendlyClassName = "." + rarityName.toLowerCase().split(" ").join("-");
jQuery(friendlyClassName).append('<figure><img src="'+data.card_img+'" title="'+data.card_name+'" alt="'+data.card_name+'"><figcaption>'+data.card_variations[0].card_code+'<figcaption></figure>');
});

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個贊
您可以使用字典來跟蹤計(jì)數(shù)并使用稀有度作為鍵。如果你改變你的類來匹配稀有性,你也可以減少很多代碼重復(fù)。
counts = {
"Secret Rare": 0,
"Ultra Rare": 0,
"Super Rare": 0,
"Rare": 0,
"Short Print": 0,
"Common": 0
}
jQuery.each(val, function (i, data) {
let rarity = data.card_variations[0].card_rarity;
let className = rarity.toLowerCase().replace(" ", "-");
counts[rarity] += 1;
jQuery(className).append('<figure><img src="'+data.card_img+'" title="'+data.card_name+'" alt="'+data.card_name+'"><figcaption>'+data.card_variations[0].card_code+'<figcaption></figure>');
});

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊
你能建立一個地圖對象嗎?鍵是 card_rarity 名稱,值是 {element, count}。map.has(key) 將檢查它是否已經(jīng)存在 - 如果存在,獲取 {element, count} 值,提取元素名稱,更新計(jì)數(shù)值,然后使用 map.set(key, {element, count} ) 更新地圖。如果密鑰不存在,請創(chuàng)建一個新密鑰。
您仍然需要手動創(chuàng)建要將數(shù)據(jù)附加到的元素 - 盡管如果它是新密鑰,您也許也可以自動創(chuàng)建這些元素?
添加回答
舉報(bào)