一、js定義map對象
Map是ES6新加入的數據結構,它提供了一種以鍵值對形式來存儲和操作數據的方式,與Object不同的是,它支持任何類型的數據作為鍵名。創建一個新的Map對象可以直接調用Map構造函數:
const map = new Map();
這樣就可以創建一個空的Map對象了。
當然,我們也可以通過傳入一個數組作為參數,來定義初始的鍵值對:
const map = new Map([ ["name", "小明"], ["age", 18], ["gender", "男"] ]);
這樣,就可以同時定義key為”name”、”age”、”gender”,value為”小明”、18、”男”的項。
二、js定義一個全局變數
我們可以使用var、let、const等關鍵字來定義全局變數,以便在不同的作用域中使用。
// 使用var定義全局變數 var globalVar = "全局變數"; function test() { console.log(globalVar); //輸出"全局變數" } // 使用let定義全局變數 let globalLet = "全局變數"; function test() { console.log(globalLet); //輸出"全局變數" } // 使用const定義全局變數 const globalConst = "全局變數"; function test() { console.log(globalConst); //輸出"全局變數" }
三、js定義Map並賦值
除了前面所說的通過構造函數或者傳入數組來創建一個Map對象之外,我們還可以通過set()方法來動態添加鍵值對:
const map = new Map(); map.set("name", "小明"); map.set("age", 18); map.set("gender", "男");
這樣就可以實現動態添加鍵值對的效果。
四、js定義類
在JavaScript中,我們可以使用class關鍵字來定義一個類,從而更好的組織和封裝代碼。
class Person { constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; } sayHi() { console.log(`我叫${this.name},今年${this.age}歲,是一個${this.gender}生。`); } } const person = new Person("小明", 18, "男"); person.sayHi(); //輸出"我叫小明,今年18歲,是一個男生。"
定義一個類,需要用到constructor方法,在其中定義類的屬性;而方法可以通過直接在類的花括弧中定義來實現。
五、js定義Map類型
JavaScript中原生支持的數據類型有Number、String、Boolean、Array、Object、undefined和null。而使用ES6中新增的數據類型,我們可以通過class來定義自己想要的數據類型。
class Map { constructor() { this.data = {}; } set(key, value) { this.data[key] = value; } get(key) { return this.data[key]; } has(key) { return key in this.data; } delete(key) { delete this.data[key]; } } const map = new Map(); map.set("name", "小明"); map.set("age", 18); map.set("gender", "男"); console.log(map.get("name")); //輸出"小明"
這樣就自己定義了一個類Map,包含了set()、get()、has()和delete()方法,以及一個數據存儲對象data。在set()方法中,使用鍵值對的方式將數據存儲到data中。在get()方法中,通過傳入鍵名,來獲取對應的鍵值。在has()方法中,使用in操作來檢測是否存在該鍵名。在delete()方法中,使用delete操作來刪除指定鍵名對應的項。
六、js定義方法
在JavaScript中,方法也是函數的一種形式,所以定義方法的方式其實就是定義函數。
class Person { constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; } sayHi() { console.log(`我叫${this.name},今年${this.age}歲,是一個${this.gender}生。`); } sayHello() { console.log("你好,世界!"); } } const person = new Person("小明", 18, "男"); person.sayHi(); //輸出"我叫小明,今年18歲,是一個男生。" person.sayHello(); //輸出"你好,世界!"
在上面的代碼中,我們在Person類中定義了sayHi()方法和sayHello()方法,分別輸出不同的結果。
七、js定義Map數組
在ES6中,新增了一個Array.of()方法,可以用來創建包含任意數量元素的數組。我們可以使用這個方法來創建包含Map對象的數組:
const map1 = new Map([ ["name", "小明"], ["age", 18] ]); const map2 = new Map([ ["name", "小紅"], ["age", 16] ]); const mapArray = Array.of(map1, map2); console.log(mapArray); //輸出[Map(2), Map(2)]
這樣就可以創建了一個包含兩個Map對象的數組,mapArray[0]和mapArray[1]分別對應map1和map2。
八、js定義Map並初始化
有時候我們需要定義一個Map對象,並在初始化時就賦值。可以通過傳入一個Object對象來實現:
const obj = { name: "小明", age: 18, gender: "男" }; const map = new Map(Object.entries(obj)); console.log(map); //輸出Map(3) {"name" => "小明", "age" => 18, "gender" => "男"}
在這個例子中,我們先定義了一個Object對象obj,包含了name、age和gender三個鍵值對。然後通過Object.entries()方法,將obj轉成一個數組形式的二維數組,再通過new Map()方法,將數組傳入來創建一個Map對象。
九、js定義Map怎麼調用
定義了Map對象之後,我們可以通過get()、set()、has()和delete()等方法來操作Map對象中的鍵值對。
const map = new Map([ ["name", "小明"], ["age", 18], ["gender", "男"] ]); console.log(map.get("name")); //輸出"小明" map.set("name", "小紅"); console.log(map.get("name")); //輸出"小紅" console.log(map.has("height")); //輸出false map.delete("age"); console.log(map); //輸出Map(2) {"name" => "小紅", "gender" => "男"} map.clear(); console.log(map); //輸出Map(0) {}
在上面的代碼中,我們先定義了一個Map對象map,然後通過get()方法,根據鍵名獲取對應的值;通過set()方法,改變或添加某個鍵名對應的值;通過has()方法,判斷是否存在某個鍵名;通過delete()方法,刪除指定的鍵值對;通過clear()方法,清空Map對象中的所有鍵值對。
十、小結
通過本文的介紹,我們了解了JavaScript中定義Map的各種方法,包括使用構造函數或數組創建Map對象、通過set()方法動態添加鍵值對、使用class定義自己的Map類型等。同時,我們也學會了如何通過get()、set()、has()和delete()等方法來操作Map對象中的鍵值對。Map作為一種新的數據結構,在實際的編程中也常常被使用到,希望本文能夠對你對Map有更深入了解和應用指導。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196411.html