Proszę o pomoc z zadaniem o Tablicach

Proszę o pomoc z zadaniem o Tablicach
Eryk Partyka (Piesw4)
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:15
0

Nie mogę sobie poradzić z zadaniem z języka JavaScript, w ogóle nie rozumiem zadania
Zadanie:
Pamiętasz jak na początku pisaliśmy zadanie w którym do 3 zmiennych zapisywaliśmy czy pokój jest zajęty, czy wolny? Teraz sprawa nieco się komplikuje ponieważ Jacek zainwestował w dodatkowe pokoje i ma ich aż 10. Pisanie 10 zmiennych byłoby nieco męczące. Napisz kod który w tablicy 10-elementowej (indeksy od 0 do 9) przekaże i wyświetli następujące informacje: zajęte są pokoje 1, 2, 3 i 7, pozostałe są wolne. Wolne oznacz wartością true, zajęte wartością false.

Podpowiedź: żeby wyświetlić tablicę w JavaScript wystarczy przekazać ją jak tekst (np. console.log(my_array); ).
Taki kod mam już podany:

Kopiuj
var my_array = [];
console.log(my_array);

A tyle zrobiłem, ale ten kod jest zły:

Kopiuj
var my_array = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
var zajete = my_array[0, 1, 2, 6];
console.log(zajete);
edytowany 1x, ostatnio: flowCRANE
fasadin
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

a nie lepiej przeczytac podstawy jakiegos kursu? Szczegolnie odnosnie tablic?

Eryk Partyka (Piesw4)
To jest właśnie część mojego kursu i nie wiem jak napisać ten kod
SE
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:318
2

Wolne oznacz wartością true, zajęte wartością false.

Skoro masz podane w poleceniu jak zrobić, to czemu tworzysz tablicę łańcuchów znakowych (aka "stringów") ? I czemu dwie, skoro wystarczy jedna? Nie mówiąc już o tym, że takie coś:

my_array[0, 1, 2, 6];

chyba nigdzie by nie przeszło.

Zobacz pozostałe 3 komentarze
SE
Toż to właściwie gotowiec będzie.To co zrobiłeś jest zbędne, wystarczyło tę podaną tablicę uzupełnić odpowiednimi wartościami (podanymi w poleceniu).
Eryk Partyka (Piesw4)
Wiesz może gdzie mógłbym znaleźć jakiś poradnik na ten temat?
SE
Jeśli pytasz o JavaScript, to możesz np. skorzystać z tutoriala na codecademy lub poczytać https://developer.mozilla.org/pl/docs/Web/JavaScript albo http://devdocs.io/javascript/.
Eryk Partyka (Piesw4)
Kurczę, nwm jak wykonać te zadanie. Mógłbyś mi je napisać na pv?
SE
Zlituj się. Toż wystarczy zrobić co napisane jest w czwartym (licząc od góry) komentarzu.
Eryk Partyka (Piesw4)
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:15
0

Dalej nwm jak to napisać, mam tylko tyle, ale pewnie wszystko jest źle:

Kopiuj
var my_array = (10);
console.log(wolne, zajete);
var wolne = true;
var zajete = false;
var wolne = my_array[0] [1] [2] [6];
var zajete = my_array [3] [4] [5] [7] [8] [9];
0
Eryk Partyka (Piesw4) napisał(a):

Dalej nwm jak to napisać, mam tylko tyle, ale pewnie wszystko jest źle:

Kopiuj
var my_array = (10);
console.log(wolne, zajete);
var wolne = true;
var zajete = false;
var wolne = my_array[0] [1] [2] [6];
var zajete = my_array [3] [4] [5] [7] [8] [9];

Jest napisane w tablicy a nie w liście, więc spokojnie możesz:

Kopiuj
var pokoje = {
0: true,
1: false,
2: true
}

Gdzie numerki do indeks i powiedzmy numer pokoju (+1) a wartość w środku to czy zajęty czy wolny

Maciej Cąderek
Maciej Cąderek
Tablica w js == lista, to co napisałeś to litarał obiektowy
Schadoow
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Postów:1068
0

łap naklepane na szybko tylko dla zobrazowania https://codepen.io/schadoow/pen/ZJKqQP

Kopiuj
let hotel = _.fill(Array(10), false)
 //funckja z lodasha która po prostu generuje 
 //wypelnioną tablice false'ami możesz utworzyć ją ręcznie
let book = function(roomNr){
  hotel[roomNr] = true;
}

let getFreeRooms = function(){
  let ids = [];
  hotel.forEach((room, i)=>{
    if(!room){
      ids.push(i);
    }
  });
  return ids;
}
book(1);
book(5);
console.log(getFreeRooms());
Maciej Cąderek
Maciej Cąderek
A co to ma do treści zadania? Btw, nie jestem w stanie pojąć po co tam lodash, new Array(10).fill(true) w czym jest gorsze?
Schadoow
@Maciej Cąderek: No zwróci listę wolnych pokoi ;p zmieniasz warunek i zwraca indexy tylko zajętych pokoi które trzeba wypisać wg zadania. A co do fill z array nie działa na IE ;p A tak na serio to nie znałem bo kodzę głównie ze wsparciem dla IE więc nie znam wszystkch nowości w es6
Maciej Cąderek
Maciej Cąderek
Lodash też nie działa na IE póki go nie zainstalujesz ;) Do takich rzeczy są polyfille ;)
Schadoow
no niby tak :)
Maciej Cąderek
Maciej Cąderek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Warszawa
  • Postów:1264
3

Zgaduję, że chcą po prostu:

Kopiuj
var my_array = [
  false,
  false,
  false,
  true,
  true,
  true,
  false,
  true,
  true,
  true,
];
console.log(my_array);
edytowany 1x, ostatnio: Maciej Cąderek
DE
I ta wiele mówiąca nazwa zmiennej my_array :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.