Uczymy się wykorzystywać console.table w JS. Zwracamy uwagę, że nieważne ile nam się wydaje, że wiemy, jest jeszcze sporo do odkrycia.
Ok, spróbujemy napisać kod, który pokazuje tabelę ASCII:
let asciiTable = {};
for(let i = 32; i <=126; i++){
asciiTable[i] = String.fromCharCode(i);
}
console.table(asciiTable);
Indeksami są numery, wartości to znaki. Ok, coś lepszego:
let asciiTable = {};
for(let i = 32; i <=126; i++){
asciiTable[i] = {
dec: i,
bin: i.toString(2),
oct: i.toString(8),
hex: i.toString(16),
char: String.fromCharCode(i)
}
}
console.table(asciiTable);
Mamy klucze, pod którymi są obiekty z parami klucz-wartość. Czyli, klucz to indeks tabeli. Będący pod tym kluczem obiekt zawiera klucze-wartości czyli nazwy kolumn i wartości tych kolumn.
Krótko mówiąc pod kluczem znajduje się taki obiekt:
console.table({
val: 1111,
8: 1,
4: 1,
2: 1,
1: 1
}
);
I tu mamy nazwy tabel i wartości. Możemy napisać funkcję, która wyświetla liczbę binarną:
function displayBinary(binArr){
let obj = {
val: binArr.join("")
};
let pos = 1;
while(binArr.length){
obj[pos] = binArr.pop();
pos = pos << 1;
}
console.table(obj);
}
displayBinary([1,1,0,1]);
Mamy tam wypisaną liczbę w dwójkowym (pod val) oraz rozpisane jej pozycje, czyli w naszym przypadku 1 – 1, 2 -0, 4 -1, 8 – 1.
Niestety to musi być z góry na dół a jak już postawimy to inaczej, to i tak będzie zaczynać się lewo do prawej (a binarne czytamy z prawej do lewej). Czyli idealnego rozwiązania do prezentacji liczb dwójkowych nie ma, ale to i tak dużo.