目录
TypeError: map.get is not a function in JavaScript
TypeError: map.get 不是 JavaScript 中的函数
“TypeError: map.get is not a function”错误发生在我们
对一个不是对象get()
的值调用方法时。Map
要解决此错误,请Map
在调用方法之前将值转换为 aget
或确保仅对Map
对象调用该方法。
下面是错误如何发生的示例。
const map = {}; // ⛔️ TypeError: map.get is not a function const result = map.get('name');
我们在一个对象上调用了
Map.get
方法并返回了错误。
确保只调用对象get
上的方法Map
要解决该错误,请确保仅调用对象get
上的方法Map
。
const map = new Map([ ['name', 'Tim'], ['country', 'Chile'], ]); console.log(map.get('name')); // 👉️ Tim console.log(map.get('test')); // 👉️ undefined
Map() 构造函数采用
一个可迭代对象,其元素是键值对,例如数组的数组,并返回一个Map
对象。
每个数组中的第一个元素是键,第二个是值。
Map
在调用之前检查对象是否为 a get()
或者,您可以Map
使用instanceof
运算符检查对象是否为 a。
const map = new Map([ ['name', 'Tim'], ['country', 'Chile'], ]); if (map instanceof Map) { const result = map.get('name'); console.log(result); // 👉️ "Tim" }
instanceof
运算符允许我们检查对象是否是使用
Map()
构造函数创建的。
const map = new Map([ ['name', 'Tim'], ['country', 'Chile'], ]); console.log([] instanceof Map); // 👉️ false console.log({} instanceof Map); // 👉️ false console.log(map instanceof Map); // 👉️ true
如果对象是
类的实例,则返回,否则operator
返回。true
Map
false
Map
在调用get()
方法之前将对象转换为 a
如果您需要将对象转换为Map
,请使用该Object.entries()
方法。
const obj = { id: 1, name: 'James', }; // ✅ Convert Object to Map const map1 = new Map(Object.entries(obj)); console.log(map1); // 👉️ {'id' => 1, 'name' => 'James'} // ✅ Convert Map to Object const objAgain = Object.fromEntries(map1); console.log(objAgain); // 👉️ {id: 1, name: 'James'}
Object.entries方法返回对象的
键值对数组。
const obj = { id: 1, name: 'James', }; // 👇️ [ [ 'id', 1 ], [ 'name', 'James' ] ] console.log(Object.entries(obj));
我们可以将一个数组的数组传递给Map()
构造函数来创建一个Map
对象。每个嵌套数组应包含 2 个元素 – 一个键和一个值。
TypeError: map.has 不是 JavaScript 中的函数
“Map.has is not a function”错误发生在我们对一个不是对象has()
的值调用方法时。Map
To solve the error, convert the value to a Map
before calling the has
method or make sure to only call the method on Map
objects.
Here is an example of how the error occurs.
const map = {}; // ⛔️ TypeError: map.has is not a function const result = map.has('name');
We called the
Map.has()
method on an object, so the error occurred.
To solve the error, make sure to only call the has()
method on Map
objects.
const map = new Map([ ['name', 'James'], ['age', 30], ]); console.log(map.has('name')); // 👉️ true console.log(map.has('bar')); // 👉️ false
Alternatively, you can check if the object is a Map
by using the instanceof
operator.
const map = new Map([ ['name', 'James'], ['age', 30], ]); if (map instanceof Map) { const result = map.has('name'); console.log(result); // 👉️ true }
The instanceof
operator allows us to check if an object was created using the
Map()
constructor.
const map = new Map([ ['name', 'James'], ['age', 30], ]); console.log('hello' instanceof Map); // 👉️ false console.log({} instanceof Map); // 👉️ false console.log(map instanceof Map); // 👉️ true
If you need to convert an object to a Map
, use the Object.entries()
method.
const obj = { id: 1, name: 'James', }; // ✅ Convert Object to Map const map1 = new Map(Object.entries(obj)); console.log(map1); // 👉️ {'id' => 1, 'name' => 'James'} // ✅ Convert Map to Object const objAgain = Object.fromEntries(map1); console.log(objAgain); // 👉️ {id: 1, name: 'James'}
我们可以将数组的数组传递给Map
构造函数以创建一个Map
. 每个嵌套数组应包含 2 个元素 – 一个键和一个值。