• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed zmienne - interpreter

Object Storage Arubacloud
0 głosów
66 wizyt
pytanie zadane 5 dni temu w JavaScript przez Mist Obywatel (1,550 p.)
zamknięte 5 dni temu przez Mist

witam zacząłem tworzyc zmienne i same zmienne udało mi sie stworzyc tylko mam problem z uzyciem write do wypisania zmiennej udało mi sie podzielic na 2 1 to z ""  a 2 to bez "" ale ogólnie gdy wypisuje zawartosc obiektu  to undefined choc wszystko niby sie zgadza 

 

        if (matchW) {
            console.log(Variable);
            console.log(matchW);
            let text = matchW[1];
            let varB = matchW[2];

            if (text){
                consol.innerHTML += text + '<br>';
            }
            else if (varB){
                console.log(varB)
                consol.innerHTML += Variable[varB] + '<br>';
            }
    }

 

czy ktos pomoze ? 

dodatkowe dane:

 

  1. Object
    1. "hej ": "hello"
    2. [[Prototype]]: Object

SCRIPT.js:86

  1. Array(3)
    1. 0: "write: hej"
    2. 1: undefined
    3. 2: "hej"
    4. groups: undefined
    5. index: 0
    6. input: "write: hej;"
    7. length: 3
    8. [[Prototype]]: Array(0)

SCRIPT.js:94hej

SCRIPT.js:96undefined



a w edytor wpisuje  nemo hej = "hello";

write: hej;  a to cały kod oprócz funkcji jak show menu import i export 
 

function runCode() {
    const code = document.getElementById('editor').innerText;
    const consol = document.getElementById('console');

    consol.innerHTML=' ';
    interpret(code, consol);
}

function interpret(code, consol) {
    let lines = code.split('\n');
    let error = false;
    const Variable = {};

    for (let i = 0; i < lines.length; i++) {
        let line = lines[i].trim();

        let Wrm = /write\s*:\s*(?:"([^"]*)"|(\w+))/;
        let sRm = /sum:\s*((\d+)(?:\s*,\s*\d+)*)\s*;/;
        let Erm = /equal:\s*(\d+)\s*,\s*(\d+)\s*\[([+\-*\/])\];/;
        let Nrm = /nemo\s+([\w\s]+)\s*=\s*"(.*?)";/;

        let matchW = line.match(Wrm);
        let matchS = line.match(sRm);
        let matchE = line.match(Erm);
        let matchN = line.match(Nrm);

        if (matchW) {
            console.log(Variable);
            console.log(matchW);
            let text = matchW[1];
            let varB = matchW[2];

            if (text){
                consol.innerHTML += text + '<br>';
            }
            else if (varB){
                console.log(varB);
                consol.innerHTML += Variable[varB] + '<br>';
            }
    }   else if (matchS) {
            let numer = matchS[1].split(',').map(Number);
            let sum = 0;

            for (let j = 0; j < numer.length; j++) {
                sum += numer[j];
            }

            consol.innerHTML += `${sum} <br>`;
        } else if (matchE) {
            let vl1 = parseFloat(matchE[1]);
            let vl2 = parseFloat(matchE[2]);
            let pseudooperator = matchE[3];
            let result;

            switch (pseudooperator) {
                case '+':
                    result = vl1 + vl2;
                    break;
                case '-':
                    result = vl1 - vl2;
                    break;
                case '*':
                    result = vl1 * vl2;
                    break;
                case '/':
                    result = vl1 / vl2;
                    break;
                default:
                    error = true;
                    break;
            }

            consol.innerHTML += `${result}<br>`;
        }  else if (matchN) {
            
                let variableName = matchN[1];
                let variableValue = matchN[2];
                Variable[variableName] = variableValue;
            }
            
        else {
            error = true;
        }
    }

    if (error) {
        consol.innerHTML = 'Error!';
    }
}
komentarz zamknięcia: znalazłem juz odp na to pytanie
komentarz 5 dni temu przez SzkolnyAdmin Szeryf (87,180 p.)
Raz console, raz consol ... Co wyświetla się w konsoli? Daj cały kod.
komentarz 5 dni temu przez Mist Obywatel (1,550 p.)
juz
komentarz 5 dni temu przez Mist Obywatel (1,550 p.)
jak cos gdy wpisuje text  z "" działa i z zmienną tez bez "" działa ale problem to wypisywanie z obiektu

Podobne pytania

0 głosów
2 odpowiedzi 97 wizyt
pytanie zadane 4 dni temu w JavaScript przez Mist Obywatel (1,550 p.)
–1 głos
0 odpowiedzi 51 wizyt
pytanie zadane 1 dzień temu w JavaScript przez Mist Obywatel (1,550 p.)
0 głosów
0 odpowiedzi 142 wizyt
pytanie zadane 26 lipca 2023 w Offtop przez reaktywny Nałogowiec (41,240 p.)

92,752 zapytań

141,666 odpowiedzi

320,385 komentarzy

62,100 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...