Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: "Pododawać" elementy tablicy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Kuba707
Witam, mam problem z JS. Moja tablica przechowuje liczbę binarną, każdy indeks przechowuje zero lub jeden. Dajmy na to:
  1. var a = new Array(0, 1, 1, 0, 1);

Teraz potrzebuję wyświetlić te wartości jako jedną wartość, zaczynając od prawej. Czyli chce aby wyświetliło mi: 10110
Nie będę robił pętli i po kolei drukował liczby na stronie, ponieważ cała operacja ma być w funkcji i liczba musi być zwrócona.
Czyli jeszcze raz, w tablicy jest takie coś: 1, 0, 1, 0, 0, 0, 1
Chcę zwrócić takie coś 1000101 - chyba jako string, nie?
wiiir
  1. var a = new Array(0, 1, 1, 0, 1);
  2. a = a.reverse()
  3. for(i=0;i<a.length;i++){
  4. document.write(a[i]);
  5. }
Kuba707
@Up, zedytowałem pierwszego posta, nie o to mi chodzi smile.gif document.write to wiem, ale jak to co w tym przypadku wydrukuje pętla, zapisać do zmiennej/zwrocić - return?
kamil4u
Możesz zrobić to na różne sposoby, ale proponuję tak:
Kod
var tablica = [0, 1, 1, 0, 1];
wynik = tablica.reverse().join(''); //odwróć kolejność i połącz ze sobą używając pustego ciągu
alert(wynik);


Jak chcesz, żeby to była liczba to: wynik = parseInt(wynik,2);

Jakbyś chciał jak poprzednik to:
Kod
var a = new Array(0, 1, 1, 0, 1), wynik = '';
a = a.reverse();

for(i=0;i<a.length;i++){
wynik += a[i];
}

alert(wynik);
Kuba707
Dzięki działa smile.gif.
Przy okazji zauważyłem co spieprzyłem... Próbowałem wcześniej zrobić tą samą operację ale na pętli i zapisywać kolejne cyfry do siebie, lecz zapomniałem o inkrementacji w pętli while i tak zapisywało tylko do indeksu 0 w tablicy...
No ale już jest ok, dzięki smile.gif.

Edit: @Up
Pierwsze słyszę o drugim parametrze w parseInt, świetna sprawa biggrin.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.