Ich habe einfachen Code, der mir verwandten Produkt basierend auf Tags anzeigen kann, aber ich möchte diesen Code erweitern, das kann ich mehr als ein Tag eingeben. In diesem Moment kann ich nur laufen:Get Element von Array nach Wert in Javascript
Und ich habe jedes Produkt mit 'Tag1' in ihren Tags. In diesem Fall name1
und name2
.
var products = [
{
name: 'name1',
tags: ['tag1', 'tag2', 'tag3'],
},
{
name: 'name2',
tags: ['tag1', 'tag3', 'tag4', 'tag5'],
},
{
name: 'name3',
tags: ['tag2', 'tag5', 'tag6'],
}
];
var finalHtml = "";
function category(tag) {
return products.filter(function(product){
if (~product.tags.indexOf(tag)) {
finalHtml += '<li>' + product.name + '</li>';
document.getElementById("related_prod").innerHTML = finalHtml;
}
});
}
Was ich erwarte?
Wenn ich diesen Code ausführen wird:
<script type="text/javascript">category('tag1, tag6');</script>
Ich möchte jedes Produkt sehen, die tag1
OR tag2
in ihren Tags hat. In diesem Fall sollte es name1
und name3
sein.
Das macht nicht viel Sinn. name3 hat kein tag1, also wenn du nach Produkten mit tag1 UND tag2 in ihren Tags suchst, bekommst du nur name1, nicht name3 – Cameron637
Aber mit tag6 würde ich gerne Produkte sehen, die tag1 und tag6 in ihren Tags haben . Name3 erfüllt diese Bedingung. – user3041764
Aber name1 nicht? Es ist wahrscheinlich nur ein Tippfehler in Ihrem Fragecode und ich verstehe jetzt, dass Sie mit "AND" -Logik nicht "ODER" suchen wollen, aber ich würde vorschlagen, sie zu bearbeiten und sicherzustellen, dass es keine Tippfehler für zukünftige Leser gibt. – Cameron637