Привет там у меня есть массив данных, который выглядит следующим образом (содержит номер списка и фирменное наименование):Нарезка массив в дальнейшем массивы на основе значений
["1_Sophie_Gray", "2_Atlantic_Bay", "2_Trait", "3_Tammy", "3_Flipback", "3_Duck_Dodge", "3_Bambini", "4_Bellisima"]
Что мне нужно сделать, это отдельный из них и создайте ul для каждого из списков (1 - женская одежда, 2 мужские одежды, 3 детской одежды и т. д.). Я, хотя лучший способ сделать это, - это пропустить этот массив и разделить значения на разные собственные массивы на основе номера списка, например.
["1_Sophie_Gray"]
["2_Atlantic_Bay", "2_Trait"]
["3_Tammy", "3_Flipback", "3_Duck_Dodge"]
Причина я хочу сделать это, чтобы создать отдельный список иконок для каждого из этих новых массивов. Таким образом, в конце концов, я в конечном итоге с этим:
<div class="store_brands">
<p id="brand_intro">
Brands and departments available in this store:
</p>
<h4>list 1</h4>
<ul>
<li>
<img src="/images/v3/brand_logos/wallis.gif" alt="list 1 brands" />
</li>
</ul>
<h4>list 2</h4>
<ul>
<li>
<img src="/images/v3/brand_logos/atlantic_bay.gif" alt="list 2 brands" />
</li>
<li>
<img src="/images/v3/brand_logos/trait.gif" alt="list 2 brands" />
</li>
</ul>
<h4>list 3</h4>
<ul>
<li>
<img src="/images/v3/brand_logos/tammy.gif" alt="list 3 brands" />
</li>
<li>
<img src="/images/v3/brand_logos/flipback.gif" alt="list 3 brands" />
</li>
<li>
<img src="/images/v3/brand_logos/duck_dodge.gif" alt="list 3 brands" />
</li>
</ul>
Вот мой код:
function inStoreBrands (storeData) {
var brandsArr = [],
listNum,
fileName,
brandImgsPath = "/images/v3/brand_logos/",
brandList = '<div class="store_brands"><p id="brand_intro">Brands and departments available in this store:</p>',
brandResults = storeData.brands,
brands = brandResults.split(", "),
listCount = 1,
titleText = "list 1";
for (var i=0; i<brands.length; i++) {
listNum = brands[i].split(/_(.+)/)[0];
listNum = parseInt(listNum);
fileName = brands[i].split(/_(.+)/)[1];
fileName = fileName.toString().toLowerCase();
function addToArray() {
brandsArr.push(brandImgsPath + fileName + '.gif');
}
if(listNum !== listCount){
buildBrandList(brandsArr, titleText);
titleText = "list " + listNum;
addToArray();
} else {
addToArray();
}
}
function buildBrandList(brandsArr, titleText) {
brandList += '<h4>'+titleText+'</h4>';
brandList += '<ul>';
for (i=0; i < brandsArr.length; i++) {
brandList += '<li><img src="'+brandsArr[i]+'" alt="'+titleText+' brands" /></li>';
}
brandList += '</ul>';
brandsArr = [];
listCount++;
}
brandList += '</div>';
return brandList;
};
Я знаю, что логика ужасно испорчено, поэтому причина не работает. Может ли кто-нибудь помочь мне понять это?
Что конкретно не работает в вашем коде? Похоже, что у вас есть правильная идея, попытайтесь точно определить, что в вашем коде или логике сломано, и сократите свой вопрос, чтобы сосредоточиться именно на этом. – maerics
Hi Maerics, я только что прочитал это, и вы правы, это могло быть объяснено лучше. Проблема, с которой я сталкиваюсь, - это фильтровать что угодно с listNum из 1 из массива брендов и хранить его в своем собственном массиве, а затем передать это функции buildBrandList и создать для него html. Затем я хочу, чтобы брендыArr возвращались к пустым и к тому же для чего-либо с ListNum из 2 и так далее. –