ЈаваСцрипт мапа

У овом упутству ћете научити о ЈаваСцрипт мапама и ВеакМапс уз помоћ примера.

ЈаваСцрипт ЕС6 је представио два нова структура података, односно Mapи WeakMap.

Мапа је слична објектима у ЈаваСцрипт-у, што нам омогућава да елементе чувамо у пару кључ / вредност .

Елементи у мапи убацују се редоследом уметања. Међутим, за разлику од објекта, мапа може садржати објекте, функције и друге типове података као кључ.

Направите ЈаваСцрипт мапу

Да бисмо креирали а Map, користимо new Map()конструктор. На пример,

 // create a Map const map1 = new Map(); // an empty map console.log(map1); // Map ()

Уметните предмет у мапу

Након што креирате мапу, set()методом можете да јој уметнете елементе. На пример,

 // create a set let map1 = new Map(); // insert key-value pair map1.set('info', (name: 'Jack', age: 26)); console.log(map1); // Map ("info" => (name: "Jack", age: 26))

Објекте или функције такође можете користити као тастере. На пример,

 // Map with object key let map2 = new Map(); let obj = (); map2.set(obj, (name: 'Jack', age: "26")); console.log(map2); // Map (() => (name: "Jack", age: "26"))

Приступите елементима мапе

Методима можете приступити Mapелементима get(). На пример,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // access the elements of a Map console.log(map1.get('info')); // (name: "Jack", age: "26")

Проверите елементе мапе

Помоћу has()методе можете да проверите да ли се елемент налази на мапи. На пример,

 const set1 = new Set((1, 2, 3)); let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // check if an element is in Set console.log(map1.has('info')); // true

Уклањање елемената

Можете користити clear()и за delete()метод за уклањање елемената са мапе.

Тхе delete()метод врати trueако наведено кључ / вредност пар постоји и уклоњен или друго враћа false. На пример,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // removing a particular element map1.delete('address'); // false console.log(map1); // Map ("info" => (name: "Jack", age: "26")) map1.delete('info'); // true console.log(map1); // Map ()

clear()Метод уклања све кључ / вредност парове са мапе објекта. На пример,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // removing all element map1.clear(); // false console.log(map1); // Map ()

Величина мапе ЈаваСцрипт

Број елемената на мапи можете добити помоћу sizeсвојства. На пример,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); console.log(map1.size); // 1

Понављајте кроз мапу

Можете да прелиставате елементе Мапе користећи петљу фор… оф или форЕацх (). Елементима се приступа по редоследу уметања. На пример,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through Map for (let (key, value) of map1) ( console.log(key + '- ' + value); )

Оутпут

 име- Јацк старости- 27

Помоћу forEach()методе можете добити и исте резултате као горе наведени програм . На пример,

 // using forEach method() let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through Map map1.forEach(function(value, key) ( console.log(key + '- ' + value) ))

Понављајте кључеве карте

Можете прећи преко мапе и добити кључ помоћу keys()методе. На пример,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let key of map1.keys()) ( console.log(key) )

Оутпут

 име година

Понављајте вредности карте

Можете прелазити преко Мапе и добити вредности помоћу values()методе. На пример,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let values of map1.values()) ( console.log(values); )

Оутпут

 Јацк 27

Набавите кључ / вредности мапе

Можете прелазити преко Мапе и добити entries()метод / кључ / вредност Мапе . На пример,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let elem of map1.entries()) ( console.log(`$(elem(0)): $(elem(1))`); )

Оутпут

 име: Јацк старост: 27

ЈаваСцрипт мапа вс објект

Мапа Предмет
Maps can contain objects and other data types as keys. Objects can only contain strings and symbols as keys.
Maps can be directly iterated and their value can be accessed. Objects can be iterated by accessing its keys.
The number of elements of a Map can be determined by size property. The number of elements of an object needs to be determined manually.
Map performs better for programs that require the addition or removal of elements frequently. Object does not perform well if the program requires the addition or removal of elements frequently.

JavaScript WeakMap

The WeakMap is similar to a Map. However, WeakMap can only contain objects as keys. For example,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); console.log(weakMap); // WeakMap (() => "hello")

When you try to add other data types besides objects, WeakMap throws an error. For example,

 const weakMap = new WeakMap(); // adding string as a key to WeakMap weakMap.set('obj', 'hello');
 // throws error // TypeError: Attempted to set a non-object key in a WeakMap

WeakMap Methods

ВеакМапс имају методе get(), set(), delete()и has(). На пример,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); console.log(weakMap); // WeakMap (() => "hello") // get the element of a WeakMap console.log(weakMap.get(obj)); // hello // check if an element is present in WeakMap console.log(weakMap.has(obj)); // true // delete the element of WeakMap console.log(weakMap.delete(obj)); // true console.log(weakMap); // WeakMap () 

ВеакМапс нису поновљиви

За разлику од Мапа, ВеакМапс нису итералибилни. На пример,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); // looping through WeakMap for (let i of weakMap) ( console.log(i); // TypeError )

ЈаваСцрипт Mapи WeakMapуведени су у ЕС6 . Неки прегледачи можда не подржавају њихову употребу. Да бисте сазнали више, посетите подршку за Мап Мап и подршку за ЈаваСцрипт ВеакМап.

Занимљиви Чланци...