Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

JS - tablica 2-wymiarowa problem z zamienianiem cyfr na znaki

#1
Sad  JS - tablica 2-wymiarowa problem z zamienianiem cyfr na znaki
Nie mogę sobie poradzić z poniższym zadaniem, wiem jak w wierszu wykrywać elementy ale nie umiem rozszerzyć tego zachowania na pozostałe wiersze (albo idę w złą stronę). Pomożecie?

Treść zadania:
Chcemy mieć możliwość rysowania dowolnych kształtów. Wykorzystajmy do tego tablicę tablic i jej wartości. Chcemy, żeby wszystkie „0” były zamieniane na spacje, a wszystkie „1”, były zamienianena „*”.Np. dla następującej tablicy tablic:
const field = [[0, 1, 0],[1, 1, 1],[1, 1, 1]];
Chcemy, żeby w konsoli wyświetliło się:
*
***
***

Moje wypociny:

l
Kod:
let tab =: [0,1,0];
for(let i=0; i<tab.length; i++){
   if(tab[i] ===1){
       tab[i] ="*"; }
   else {tab[i]="";}
}

// albo coś w ten deseń tylko nie w .map stworzyć pętli for
const tab2 = tab.map(el=>{(el ===1)?'*' : ''})

coś takiego wymyśliłam:

Kod:
const tab = [[0,1,0],[1,1,1],[1,1,1]]
const changeArray = function(tab){
for (let i = 0; i < tab.length; i++) {
 for (let j = 0; j < tab[i].length; j++) {
   tab[i][j] === 1 ? (tab[i][j] = "*") : (tab[i][j] = "");
 }
}
}
changeArray([[0,1,0],[1,1,1],[1,1,1])


alternatywnie


Kod:
const changeArray = (tab) =>
 tab.map((row) => row.map((element) => (element === 1 ? "*" : "")));
 System operacyjny: windows_ten Przeglądarka: chrome
#2
RE: JS - tablica 2-wymiarowa problem z zamienianiem cyfr na znaki
Masz 2 tablice wiec map powinieneś użyć 2 razy.
1 raz aby z [[1,1,1],[0,0,0]] wyciągnąć wewnętrzną tablice. A drugi aby by przeprocesować tablice wewnętrzną
Kod:
var arrProcess = function(arr) {

  return arr.map((x) => itemProcess(x)).join('');
}

var itemProcess = function(item) {
  switch (item) {
    case 1: {
      return '*';
    }
    case 0: {
      return ' ';
    }
  }
}

const tab = [
  [0, 1, 0],
  [1, 1, 1],
  [1, 1, 1]
];

let test = tab.map((outer) => arrProcess(outer) + '\n').join('');

alert(test);

Co w tym kodzie robi join('') spróbuj rozkminić samodzielnie.
 System operacyjny: windows_ten Przeglądarka: chrome
#3
RE: JS - tablica 2-wymiarowa problem z zamienianiem cyfr na znaki
join(" ") - służy do zamiany na string w nawiasie podaje się separator, gdy nie podamy separatora to domyślnie dla tablic wstawi przecinki ;p

Ostatecznie zadanie w następujący sposób rozwiązałam
Kod:
const field = [
 [0, 1, 0],
 [1, 1, 1],
 [1, 1, 1]
];
const change = function (n) {
 let newField = field.map((row) => row.map((el) => (el === 1 ? "*" : "")));
 let changeTotext = newField.forEach((final) => console.log(final.join("")));
};
change([
 [0, 1, 0],
 [1, 1, 1],
 [1, 1, 1]
]);

// Proszę korzystać ze znaczników
Kod PHP:
[code][/code
// Szachista
 System operacyjny: windows_ten Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (JS - tablica 2-wymiarowa problem z zamienianiem cyfr na znaki)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 13592 16.05.2018, 12:04
Ostatni post: kazik666
  [C++] Zwracanie dwóch wartości z funkcji (szukanie w. maksymalnej - tablica) Chudy2000 3 11261 16.06.2016, 08:10
Ostatni post: Szachista
  liczba cyfr w liczbie ser-x7 2 11541 01.03.2016, 01:15
Ostatni post: ser-x7

Skocz do: