Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> usuwanie całego rekordu z tablicy asocjacyjnej
acainoks
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Witam załóżmy że mam tablicę asocjacyjną postaci:
[JAVASCRIPT] pobierz, plaintext
  1. var tablica = { "Ala" : "kot", "Pi" : 3.1415 };
[JAVASCRIPT] pobierz, plaintext

Czy jest możliwe usunięcie całego rekordu, bez filtrowania całej tablicy, gdzie Ali jest przypisany kot? Nie chodzi mi tu o użycie funkcji delete czy splice.
Dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
seth-kk
post
Post #2





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


w ramach scislosci - to jest obiekt a nie tablica
wracajac do tematu chodzi o cos takiego:
Kod
var tablica = { "Ala" : "kot", "Pi" : 3.1415 };
//...
tablica = {};


--------------------
Go to the top of the page
+Quote Post
acainoks
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


przepraszam za pomyłkę wstydnis.gif
Może inaczej
Tworzę Array
[JAVASCRIPT] pobierz, plaintext
  1. var ubrania = new Array();
[JAVASCRIPT] pobierz, plaintext


później tworzę wzór obiektu

[JAVASCRIPT] pobierz, plaintext
  1. function ubranie (rodzaj,rozmiar,kolor,id) {
  2. this.rodzaj = rodzaj;
  3. this.ro = rozmiar;
  4. this.k = kolor;
  5. this.id = id;
  6. }
[JAVASCRIPT] pobierz, plaintext


następnie tworzę obiekt
[JAVASCRIPT] pobierz, plaintext
  1. var spodnie = new ubranie(jeansy,xxl,black,394);
[JAVASCRIPT] pobierz, plaintext


i dodaję do tablicy
[JAVASCRIPT] pobierz, plaintext
  1. ubrania.push(spodnie);
[JAVASCRIPT] pobierz, plaintext


poprzednio chciałem skrócić ale nie wyszło wstydnis.gif
Teraz chodzi o to aby usunąć te spodnie o id 394 spośród innych ubrań:)
Go to the top of the page
+Quote Post
seth-kk
post
Post #4





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


jesli nie znasz indeksu rekordu to musisz go znalesc - indexOf() lub petla
dlaczego nie splice()?
ja o ile to mozliwe wpychalbym obiekty na konkretne indeksy rowne ich id i usowal za pomoca splice()


--------------------
Go to the top of the page
+Quote Post
acainoks
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Seth-kk na dobrą sprawę może być splice() z tym że this.id musiałoby jakoś nadpisywać numer obiektu tworzony automatycznie w tablicy js. Dochodzi jeszcze do tego taki problem, że w późniejszym czasie chciałbym aby moje id wyglądało np: U7vv9BHy4S44g a żeby takie coś przypisać do numeru obiektu w tablicy to już JS sobie chyba nie pozwoli. Ktoś ma może jakiś pomysł
Go to the top of the page
+Quote Post
seth-kk
post
Post #6





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


1. podwojne id (int dla tablicy i string dla obiektu)
2. indexOf() - w tym przypadku nie pamietam czy implementacja js we wszystkich przegladarkach pozwala na jego uzycie
3. obiekt zamiast tablicy
wybierz sobie jedno


--------------------
Go to the top of the page
+Quote Post
zegarek84
post
Post #7





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(seth-kk @ 10.11.2009, 00:59:32 ) *
w ramach scislosci - to jest obiekt a nie tablica

i one są właśnie w JS odpowiednikiem tablic asocjacyjnych i można się spokojnie do nich potem odwoływać jak do tablic
Cytat(acainoks @ 10.11.2009, 12:15:52 ) *
Seth-kk na dobrą sprawę może być splice() z tym że this.id musiałoby jakoś nadpisywać numer obiektu tworzony automatycznie w tablicy js. Dochodzi jeszcze do tego taki problem, że w późniejszym czasie chciałbym aby moje id wyglądało np: U7vv9BHy4S44g a żeby takie coś przypisać do numeru obiektu w tablicy to już JS sobie chyba nie pozwoli. Ktoś ma może jakiś pomysł

pytanie czy to id masz unikatowe?? i czy ono zazwyczaj będzie właśnie tym identyfikatorem?? - bo inaczej tablicę całą będziesz musiał przeszukać...

jeśli to id masz unikatowe to użyj "tablicy asocjacyjnej" () w konstrukcji danych:
[JAVASCRIPT] pobierz, plaintext
  1. ubrania={
  2. id:{
  3. rodzaj:null,
  4. ro:null,
  5. k:null
  6. }
  7. }
[JAVASCRIPT] pobierz, plaintext

gdzie ubrania={} a dany produkt {rodzaj:null,ro:null,k:null}, gdzie do ubrań dodajesz ubrania[id]={rodzaj:null,ro:null,k:null}...
rekord kasujesz np. przez delete(ubrania[id]) - oczywiście to id masz unikatowe...


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
acainoks
post
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Dzięki zegarek84 właśnie o to chodziło. Id będzie niepowtarzalny.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 00:02