JavaScript – Kurs

Iteracja obiektu (klucz/wartość – key/value)

Rozpocznijmy z prostym obiektem

var object2convert = {
  key1: 'value 1',
  key2: 'value 2',
  key3: 'value 3'
}

Naszym celem będzie iteracja obiektu po wszystkich kluczach.

Iteracja obiektu po kluczach (EcmaScript 5)

Użyjemy do tej iteracji pętli for … in:

for (var key in object2convert) {
        if (object.hasOwnProperty(key)) {
           user[key] = object[key];
        }
}

Teraz stwórzmy reużywalną funkcję która będzie wykonywała tą operację:

function object2array(object) {
  var array = [];
  
  for (var key in object) {
    if (object.hasOwnProperty(key)) {
      var newObj = {
        key: key,
        value: object[key]
      }
      
      array.push(newObj)
    }
  }
  
  return array;
}

Żeby zrobić test jak to działa stwórzmy obiekt który będziemy chcieli ziterować i podajmy go jako parametr do wykonania uprzednio stworzonej funkcji:

var object2convert = {
  key1: 'value 1',
  key2: 'value 2',
  key3: 'value 3'
}

function object2array(object) {
  var array = [];
  
  for (var key in object) {
    if (object.hasOwnProperty(key)) {
      var newObj = {
        key: key,
        value: object[key]
      }
      
      array.push(newObj)
    }
  }
  
  return array;
}

console.log(object2array(object2convert));

Funckcja zwróci:

[
  {
    key: 'key1',
    value: 'value 1'
  },
  {
    key: 'key2',
    value: 'value 2'
  },
  {
    key: 'key3',
    value: 'value 3'
  }
]

Iteracja obiektu po kluczach (EcmaScript 6)

Użyjmy teraz do naszej funkcji elemnetów EcmaScript 6:

const convert = (object) => Object
                              .keys(object)
                              .map(id => ({
                                key: id,
                                value: object[id]
                              }))

Teraz przetestujmy nasz kod:

const convert = (object) => Object
                              .keys(object)
                              .map(id => ({
                                key: id,
                                value: object[id]
                              }));

var object2convert = {
  key1: 'value 1',
  key2: 'value 2',
  key3: 'value 3'
}

console.log(convert(object2convert));
Please follow and like us:
error

Leave a comment

Your email address will not be published. Required fields are marked *