map js

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
JurajSlovakID
Čierna listina bazáru
Čierna listina bazáru
Príspevky: 787
Dátum registrácie: Po 13. Apr, 2015, 09:35
Bydlisko: Spišská Nová Ves

map js

Príspevok od používateľa JurajSlovakID »

mam tu taky priklad,
preco mi pise NaN?

Kód: Vybrať všetko

var trips = [
    { distance: 34, time: 10 },
    { distance: 90, time: 50 },
    { distance: 59, time: 25 }
  ];
  
  var speeds = trips.map(function(speed){
      return speed = trips.distance / trips.time;
    });

  console.log(speeds);
PC: CPU: RYZEN 5950X VMR-B2@ 4725MHz 1.35V , Chladic Arctic Liquid Freezer II RAM: GSKILL NEO 2x16KIT(32GB) 14-15-15-12-26-38 CR2 - upravene tercialne casovania, GFX: AMD Vega64, MB: Asus Dark Hero VIII X570, M.2 SSD Samsung 990 PRO 2TB, 2xRAID1 WDGOLD 8TB
Používateľov profilový obrázok
JurajSlovakID
Čierna listina bazáru
Čierna listina bazáru
Príspevky: 787
Dátum registrácie: Po 13. Apr, 2015, 09:35
Bydlisko: Spišská Nová Ves

Re: map js

Príspevok od používateľa JurajSlovakID »

dalsi priklad

Kód: Vybrať všetko

var numbers = [15, 25, 35, 45, 55, 65, 75, 85, 95];
function(numbers){
    return numbers.filter(function(number){
        return numbers
    })
};
neviem sa dalej pohnut ako to ma byt oni tam maju strasne zly support pre tie priklady..
chcem pomocou helpera filter odfiltrovat len sumy vacsie ako 50, dik.

dokazal som to sam za par minut...

Kód: Vybrať všetko

var numbers = [15, 25, 35, 45, 55, 65, 75, 85, 95];
var greater = numbers.filter(function(numbers){
return numbers > 50;
});
console.log(greater);
PC: CPU: RYZEN 5950X VMR-B2@ 4725MHz 1.35V , Chladic Arctic Liquid Freezer II RAM: GSKILL NEO 2x16KIT(32GB) 14-15-15-12-26-38 CR2 - upravene tercialne casovania, GFX: AMD Vega64, MB: Asus Dark Hero VIII X570, M.2 SSD Samsung 990 PRO 2TB, 2xRAID1 WDGOLD 8TB
Používateľov profilový obrázok
M1ch4l
VIP
VIP
Príspevky: 6635
Dátum registrácie: Št 21. Feb, 2008, 14:00
Bydlisko: Kysucký Lieskovec / Praha

Re: map js

Príspevok od používateľa M1ch4l »

Map, filter a pod. beru ako parameter funkciu, ktora sama berie ako parameter 1 prvok nejakeho kontajneru/kolekcie. Ty si to obalil do funkcie naviac

v pripade filter ta funkcia musi vracat true/false, t.j. napr. takto

Kód: Vybrať všetko

var numbers = [15, 25, 35, 45, 55, 65, 75, 85, 95];
var filtered = numbers.filter(function(oneNumber) {
  return oneNumber > 50
})
console.log(numbers)
console.log(filtered)
Ten filter postupne prejde cez vsetky cisla a na kazde samostatne vykona kod z tej funkcie (hovori sa jej lambda lebo nema meno - tiez anonymna funkcia). Lambda mu vrati true => ponechava si hodnotu, alebo false => zahadzuje hodnotu. To co ponecha zapise do samostatnej kolekcie filtered.

V pripade map ta funkcia vracia vysledok lubovolneho typu. V tvojom priklade mas v tej funkcii nespravne return statement.

opravene:

Kód: Vybrať všetko

var trips = [
  { distance: 34, time: 10 },
  { distance: 90, time: 50 },
  { distance: 59, time: 25 }
];
  
var speeds = trips.map(function(trip){
  return trip.distance / trip.time;
});

console.log(speeds);
Tuto map prejde vsetky trips po jednom a pre kazdy samostatne vykona kod z funkcie. Vysledok zapise do samostatnej kolekcie speeds.

Vnutri funkcie chces pouzivat hlavne jej parametre, idealne nic moc naviac. Davaj si pozor na nazvy veci: co je parameter lambdy a co je nejaka premenna mimo. Idealne si nazyvaj veci tak aby bol ten nazov vo svojom bloku unikatny.
Music: AKG K240 MK II / Beyerdynamic DT 770 Pro 80 Ohm @ Topping DX7 Pro
Bike: 2022 Canyon Neuron CF 8; Coffee: Chemex 6-cup
Spoiler: ukázať
CPU 7800 X3D + DeepCool AK620; MB ROG Strix B650E-E; RAM G.Skill 32GB 6000CL30; GPU 7900XT Pulse; OS SSD 980 Pro 1TB; Storage SN850X 2TB, 860 QVO 2TB; PSU ROG Strix 850W Aura; CASE Define R4 Arctic White Window; Peripherals Aorus AD27QD + DELL U2311H, Logitech G513 Carbon linear, Logitech G903 + Razer Destructor 2, Blue Snowball

Návrat na "Programovanie"