8 lip 2018

addEventListener wiele zdarzeń

Zamiast wywoływać dwa razy tą samą funkcję.

document.addEventListener("click", taSamaFunkcja);
document.addEventListener("touchstart", taSamaFunkcja);

Możemy to zrobić tak jak poniżej

["change", "keyup", "click", "touchstart", "input", "..."].forEach(function(event) {
  document.querySelectorAll('.element').addEventListener(event, function() {
    // i tutaj co potrzeba
  }, false);
});
9 mar 2018

Object.keys, values, entries

Poniżej kilka przykładów jak dobrać się do obiektów 🙂

var codes = {
  reset: [0, 0],
  bold: [1, 22]
};

Object.keys(codes).forEach(function (key) {
  console.log(key); // "reset", "bold"
});

Object.values(codes).forEach(function (key) {
  console.log(key); // [0,0] [1,22]
});

Object.entries(codes).forEach(function (key) {
  console.log(key); // ["reset", [0, 0]] ["bold", [1, 22]]
});
14 sty 2018

forEach, filter, map, sort, reduce

Trochę operacji na tablicach 🙂

const employments = [
  { name: 'Andrzej', category: 'Finanse', start: 1982, end: 2017 },
  { name: 'Agnieszka', category: 'Sprzedaż', start: 1992, end: 2008 },
  { name: 'Mariola', category: 'Samochody', start: 1991, end: 2007 }
];

const digits = [23, 22, 10, 1, 5, 54, 25, 24, 21];

Chcemy pobrać imię pracownika.
Najpierw w starym stylu.

for (let i = 0; i < employments.length; i++) {
  console.log(employments[i].name); // Andrzej, Agnieszka, Mariola
}

forEach - teraz pobierzemy przez forEach

employments.forEach(function(employment) {
  console.log(employment.name);
});

Możemy to zrobić jeszcze szybciej prze ES6

employments.forEach(employment => {
  console.log(employment.name);
});
26 lis 2009

Wykorzystanie array_unique

$str = '2009.1|2009.2|2009.6|2009.6|2009.6|2009.7 |2009.8|2009.8|2009.9|2009.9|2009.9|2009.10|2009.10|2009.10|2009.10';
echo $str . '<br><br>';

$tab = explode('|', $str);
$tab2 = array_unique($tab);

echo '<pre>'; print_r($tab2); echo '</pre>';
$cnt = count($tab2);

for($i=0; $i<$cnt; $i++) {
 echo $tab2[$i].' ';
}

echo '<br><br>';</p>

foreach($tab2 as $row) {
 echo $row.' ';
}

Wyniki:
2009.1|2009.2|2009.6|2009.6|2009.6|2009.7 |2009.8|2009.8|2009.9|2009.9|2009.9|2009.10|2009.10|2009.10|2009.10
Array
(
    [0] => 2009.1
    [1] => 2009.2
    [2] => 2009.6
    [5] => 2009.7
    [6] => 2009.8
    [8] => 2009.9
    [11] => 2009.10
)

for:
2009.1 2009.2 2009.6 2009.7 2009.8

foreach:
2009.1 2009.2 2009.6 2009.7 2009.8 2009.9 2009.10

18 lis 2008

Wybór następnego elementu z tablicy

$script_modes  = array('save_xml' => array('operation_type' => 'XML_TO_BASE', 'operation_mode' => 'LOAD_HTTP'),
'save_to_base' => array('operation_type' => 'XML_TO_BASE'),
'save_to_base2' => array('operation_type' => 'XML_TO_BASE')
);

if(!$script_mode) {
$script_mode = key($script_modes);
 $script_mode = 'save_to_base';
}

foreach($script_modes as $mode => $param) {
 if($script_mode==$mode)
  break;
}
$script_mode = key($script_modes);
echo $script_mode . '<br>';