W jaki sposób mogę się odwołać do green, red,blue , że np. jeżeli jest to robię console.loga że jest ?
Nie wiem czy to przez to ,że robię to w vue.
if (this.divColor.includes("green")) {
console.log("jest");
} else {
console.log("nie ma");
}
this.divColor[0].includes('green")
, biorąc pod uwagę podany przez Ciebie przykład - przy czym zaczyna to wyglądać podejrzanie. Co próbujesz osiągnąć?
Robię coś ala jednorękiego bandytę i chcę teraz ogarnąć mechanikę wyników i zrobić , że np. jak jest 3x green to dajmy na to jak na razie consol.loga niech wyrzuca.Chyba ,że to w pętli zrobić i np. this.divColor[i].includes()
Zatem dlaczego masz tablicę tablic (tablicę dwuwymiarową)? Zdaje się, że w divColors
powinieneś mieć od razu tablicę trzech stringów (zawierającą wylosowane symbole / kolory).
Tablicę generuję w ten sposób, ogólnie to sprawdzając każdy element pykło.
methods: {
randomColors() {
const colors = [];
for (let i = 0; i < this.options.length; i++) {
const colorIndex = Math.floor(Math.random() * this.options.length);
const color = this.options[colorIndex];
colors.push(color);
}
this.divColor.push(colors);
console.log(this.divColor);
for (let i = 0; i < this.divColor.length; i++) {
if (this.divColor[i].includes("green")) {
console.log("jest");
} else {
console.log("nie ma");
}
}
}
}
Chwila, chwila - powoli; co konkretnie ma reprezentować divColor
?
Są tam zapisywane kolory wygenerowane z pierwszej pętli
Pokazałeś kod, widzę co się dzieje - nie rozumiem jednak Twojej intencji / założenia ;-)
Dlaczego divColor
nie jest po prostu np. ['green', 'green', 'red']
, tylko jest tablicą dwuwymiarową?
Na początku miałem jednowymiarową jak zrobiłem w ten sposób
this.divColor.push(color);
zamiast
colors.push(color);
ale wtedy mi się źle renederowały divy za pomocą dyrektywy v-for i nie wiedziałem jak się z tym uporać więc tak zostawiłem
<div v-for="(container,index) in divColor" :key="index" class="app-bandit__colors">
<div
v-for="(divs,index) in container"
:key="index"
class="app-bandit__color"
v-bind:style="[{backgroundColor: divs},{color: divs}]"
>{{divs}}</div>
</div>
Dlaczego nie może być po prostu tak?
<div v-for="(color, index) in divColor"
:key="index"
class="app-bandit__color"
v-bind:style="[{ backgroundColor: color }, { color }]">
{{ color }}
</div>
Jeżeli ci chodzi o to żeby tylko dać v-for na app-bandit__color bez v-for na app-bandit__colors to dlatego że wtedy generuje mi się po jednym divie zamiast 3 na raz .
Czekaj czekaj zrobiłem jednego v-fora jak mówiłeś i dałem this.divColor.push(color) i renderuje się tablica jednowymiarowa z 3 divami