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

dodawanie i wyświetlanie indeksów dwóch tablic oraz wyświetlanie tablicy indeksów nadmiarowych

Object Storage Arubacloud
0 głosów
850 wizyt
pytanie zadane 28 lutego 2017 w JavaScript przez svyatogor92 Użytkownik (670 p.)

Witam,

Mam za zadanie napisać funkcję przyjmującą jako argument dwie tablice. Funkcja ma zwracać nową tablicę zawierającą sumy odpowiednich indeksów z obu tablic, a jeśli, któraś tablica jest dłuższa od drugiej to funkcja ma także zwrócić nową tablice z tymi elementami.

Udało mi się wykonać pierwszą część zadania:

var sumArrays = [];
var outputArr = [];

var addArrays = function(arr1, arr2) {
  for(i = 0; i < arr1.length; i++) {
    for(j = 0; j < arr2.length; j++) {
      sumArrays = arr1[i] + arr2[i];
    }
    outputArr.push(sumArrays);
  }
  return outputArr;
}
console.log(addArrays([1,2,3,4,5],[1,2,3,4,5]));

 

konsola zwraca sumę indeksów obu tablic, jednak nie potrafię poradzić sobie ze stworzeniem drugiej tablicy, która zawierałaby indeksy tablicy dłuższej. Proszę o radę.

komentarz 28 lutego 2017 przez xmentor Nałogowiec (49,520 p.)
A pętla zagnieżdżona do czego Ci potrzebna?
1
komentarz 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)
elementarny przykład kodu "co ja tutaj robię"
komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Faktycznie, nie potrzebna. Poprawiłem.
komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Magicone - przyszedłem się dowiedzieć :)

1 odpowiedź

0 głosów
odpowiedź 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)
Totalnie nie rozumiem co napisałeś, masz stworzyć funkcję, która jako dwa pierwsze argumenty przyjmuje tablice, które sumujesz względem ich indeksów, tj. [0] + [0], [1] + [1], itd. Ale co wtedy z nimi zrobić?
komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
No chce wyświetlić w konsoli tablicę, której elementy będą sumą poszczególnych indeksów dwóch wejściowych tablic co już udało mi się osiągnąć. Nie wiem natomiast jak sprawić, aby w przypadku, gdy jedna tablica jest dłuższa od drugiej to do nowo powstałej tablicy z sumą elementów miałby dodawać się (push) także elementy nadmiarowe.

Przykład:

arr1 = [2,3,4];
arr2 = [1,2,3,5];

mnie udało się wyświetlić w konsoli - [3,5,7,NaN],

a chciałbym - [3,5,7,5]
komentarz 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)
const sumArray = new Array(Math.max(arr1.length, arr2.length));

for (let index = 0; index < sumArray.length; index++) {
  sumArray[index] = (arr1[index] || 0) + (arr2[index] || 0);
}

console.log(sumArray);

 

komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Wszystko pięknie, jednak polecenie dostałem takie, aby wykonać to zadanie przy pomocy funkcji, która będzie przyjmować te dwie tablice jako argument.

W podanym przez Ciebie przykładzie jak rozumiem należy gdzieś podać osobno dwie zmienne zawierające tablice, ale nawet jeśli to robię to i tak konsola wywala mi błąd :)
komentarz 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)

wystarczy to owinąć w funkcję:

function sumArray() {
  const result = new Array(Math.max(arr1.length, arr2.length));
 
  for (let index = 0; index < sumArray.length; index++) {
    result[index] = (arr1[index] || 0) + (arr2[index] || 0);
  }
 
  return result;
}

console.log(sumArray([1, 2, 3], [1, 2, 3, 4]));

 

komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Ok, dziękuję :) Wiem, że jeszcze dużo pracy przede mną jeśli chodzi o JS :)
komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Po przekazaniu parametrów do funkcji (arr1, arr2) konsola wyświetla tylko [2,4] także nadal rozwiązanie nie właściwe :P
komentarz 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)

ops, w funkcji zapomniałem dopisać argumenty jakie przyjmuje, popraw:

sumArray(arr1, arr2)

komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Ok, ale to nadal nie rozwiązuje problemu, konsola dodaje do siebie tylko 2 pierwsze indeksy obu tablic
komentarz 28 lutego 2017 przez Magicone Nałogowiec (45,100 p.)

ok, następny błąd to zła nazwa tablicy w pętli for <facepalm>


function sumArray(arr1, arr2) {
  const result = new Array(Math.max(arr1.length, arr2.length));
  
  for (let index = 0; index < result.length; index++) {
    result[index] = (arr1[index] || 0) + (arr2[index] || 0);
  }
  
  return result;
}
 
console.log(sumArray([1, 2, 3], [1, 2, 3, 4]));

 

komentarz 28 lutego 2017 przez svyatogor92 Użytkownik (670 p.)
Ok teraz śmiga :D dzięki ! :)

Podobne pytania

0 głosów
1 odpowiedź 385 wizyt
pytanie zadane 20 lipca 2017 w C i C++ przez amited Początkujący (470 p.)
0 głosów
1 odpowiedź 575 wizyt
pytanie zadane 26 listopada 2017 w C i C++ przez Bish0p Obywatel (1,940 p.)

92,578 zapytań

141,426 odpowiedzi

319,653 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...