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

Javascript funkcje objaśnienie zasady działania

Cloud VPS
0 głosów
489 wizyt
pytanie zadane 9 października 2017 w JavaScript przez PanKill Nowicjusz (230 p.)
edycja 9 października 2017 przez PanKill

Witam wszystkich

Proszę o wyjaśnienie działania części kodu, aby można było zorientować się o co chodzi, podaję treść zadania:
Napisz funkcję addArrays, która ma przyjmować dwa argumenty – dwie tablice
zawierające liczby całkowite. Funkcja ta ma zwracać również tablicę, która będzie
wynikiem dodawania każdego elementu o tym samym indeksie. Jeżeli, tablice nie są
równe, elementy nadmiarowe są przepisywane do nowej tablicy.

function addArrays(arr1, arr2) {
    let arrLen1 = arr1.length;
    let arrLen2 = arr2.length;

    let arrayLength = 0;
    let arrayMin = 0;

    if(arrLen1 > arrLen2) {
        arrayLength = arrLen1;
        arrayMin = arrLen2;

    }else if (arrLen1 < arrLen2) {
        arrayLength = arrLen2;
        arrayMin = arrLen1;
    }
    console.log('arrayLength ' + arrayLength);
    console.log('arrayMin ' + arrayMin);

        let sumArray = [];

       for(let i=0; i<arrayLength; i++) {
            if(i > arrayMin -1){
                if(arrLen1 > arrLen2) {
                    sumArray[i] = arr1[i];
                }else {
                    sumArray[i] = arr2[i];
                }
            }else {
                sumArray[i] = arr1[i] + arr2[i];
            }
        }
        console.log(arr1);
        console.log(arr2);
        console.log(' ');
        console.log(sumArray);
        return sumArray;
}
addArrays([4,0,1,3,4], [1,9,6,7,8,17]);

 

chodzi dokładnie o te część kodu, nie do końca rozumiem o co chodzi w tej części z pętlą i instrukcjami

for(let i=0; i<arrayLength; i++) {
            if(i > arrayMin -1){
                if(arrLen1 > arrLen2) {
                    sumArray[i] = arr1[i];
                }else {
                    sumArray[i] = arr2[i];
                }
            }else {
                sumArray[i] = arr1[i] + arr2[i];
            }
        }

 

z góry dziękuje za pomoc.

2 odpowiedzi

+1 głos
odpowiedź 9 października 2017 przez Schizohatter Nałogowiec (39,600 p.)
Można to też tak zrobić:

https://pastebin.com/H37J4266

Pisane z telefonu. Jest tam literowka w pierwszej linijce i mogą być jeszcze jakieś, ale idea jest.
komentarz 9 października 2017 przez PanKill Nowicjusz (230 p.)
a mógłbyś wytłumaczyć co oznacza ten zapis: (arr1[i] ¦¦ 0) + (arr2[i] ¦¦ 0);

ponieważ nie spotkałem się z takim znakiem ¦¦ :(
komentarz 9 października 2017 przez Schizohatter Nałogowiec (39,600 p.)
Chodzi o zwykly pipe (pionowa linia). Nie umialemgo znalezc na klawiaturze telefonu. https://stackoverflow.com/questions/2802055/what-does-the-construct-x-x-y-mean
komentarz 9 października 2017 przez Schizohatter Nałogowiec (39,600 p.)
| ← o taki znak
komentarz 9 października 2017 przez PanKill Nowicjusz (230 p.)

dzięki wielkie za pomocsmiley

0 głosów
odpowiedź 9 października 2017 przez xandros Nałogowiec (29,450 p.)
W warunku masz przepisanie liczb nadmiarowych, a w elsie dodawanie.

Podobne pytania

0 głosów
1 odpowiedź 1,555 wizyt
0 głosów
1 odpowiedź 808 wizyt
pytanie zadane 19 kwietnia 2021 w JavaScript przez MarcoPolo Nowicjusz (180 p.)
+1 głos
1 odpowiedź 272 wizyt

93,485 zapytań

142,417 odpowiedzi

322,767 komentarzy

62,898 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

Kursy INF.02 i INF.03
...