Een var wordt gedefinieerd als een object mbv {} en bevat steeds een key en een waarde
VAR info = {name: “lisa”};
Wanneer je de waarde van de de key(property) wil kennen kan je gebruik maken van de [“key”]
Logger.log(info[“name”]);
Wanneer je alle keys in een object wil bekijken kan je de volgende for loop gebruiken waarbij je een array van een paar [key,val] gaat bekijken in het object info.
for (var [key,val] in info){
logger.log(key);
logger.log(val);
}
Je kan in een object ook een array alle element toevoegen.
Indien je dan de inhoud van deze array wil lezen dien je de “key” te laten volgen door de nummer van het element in de array (start met 0)
Dus:
Logger.log(info[“favcolors”][1]);
verwijst naar het tweede element zijnde “red”
Om te achterhalen of een property van een object een array is, kan je gebruik maken van de constructor.
Dit geeft een object terug, waarbij de name property = “Array”
let prop=itemlink.Intro["Response:2B-elektrische kring"].constructor
if(prop.name=="Array"){
Het is ook mogelijk om object in een object te hebben.
De referentie naar een key binnen dit tweede object gebeurt analoog aan de ref naar het element in een array, maar dan met de key.
Hier zal je dus gebruik maken van
object[key_object] [key_obj_in_obj))
Wanneer je veel gegevens moet doorgeven aan een functie, die veranderen, zoals in de email app met een template, kan je gebruik maken van een object als parameter.
Zoals je bovenaan ziet, kan je een object als parameter doorgeven en dezelfde lus gebruiken om uit dit object de data te halen die je nodig hebt.
Tevens kan je de de template text ook als var doorgeven en door de replace laten vervangen in de functie.
Als return geef je nu de gemodificeerde message body terug, die verder kan gebruikt worden om te versturen via email.
Een toepassing is het object in de mailapp, waarbij je de afzender meegeeft aan je verzonden mail;
Object.keys(obj) //returns an array of keys.
Object.values(obj) //returns an array of values.
Object.entries(obj) //returns an array of [key, value] pairs.
-> laat heel wat toe
For looping over a map, there are 3 methods:
map.keys() //returns an iterable for keys,
map.values() //returns an iterable for values,
map.entries() //returns an iterable for entries [key, value], it’s used by default in for..of.
Laat je toe te kijken of een property bestaat in een object.
let user = { age: 30 };
let key = "age";
alert( key in user ); // true, property "age" exists
let user = {
name: "John",
age: 30,
isAdmin: true
};
for (let key in user) {
// keys
alert( key ); // name, age, isAdmin
// values for the keys
alert( user[key] ); // John, 30, true
}
Zie Assign voor clone en merge obj
let clone = Object.defineProperties({}, Object.getOwnPropertyDescriptors(obj));