Javascript 如何使用数组作为参数创建新的WeakMap?
我一直在阅读关于WeakMap的MDN文档。 它提到了语法:Javascript 如何使用数组作为参数创建新的WeakMap?,javascript,weakmap,Javascript,Weakmap,我一直在阅读关于WeakMap的MDN文档。 它提到了语法: newweakmap([iterable]) 但当我尝试此操作时,出现了错误: var arr = [{a:1}]; var wm1 = new WeakMap(arr); 未捕获类型错误:用作弱映射键的值无效 你能给我举一个关于如何通过数组实现的例子吗?你需要一个2D数组,比如[[key1,value1],[key2,value2]。因为您没有钥匙,所以在这里使用WeakSet更合适。From Iterable是数组或其他Iter
newweakmap([iterable])
但当我尝试此操作时,出现了错误:
var arr = [{a:1}];
var wm1 = new WeakMap(arr);
未捕获类型错误:用作弱映射键的值无效
你能给我举一个关于如何通过数组实现的例子吗?你需要一个2D数组,比如
[[key1,value1],[key2,value2]
。因为您没有钥匙,所以在这里使用WeakSet更合适。From
Iterable是数组或其他Iterable对象,其元素为
键值对(2元素数组)
及
键必须是对象,值可以是任意值
因此:
文件说: Iterable是一个数组或其他Iterable对象,其元素是键值对(2元素数组)
{a:1}
是一个对象,而不是2元素数组
再往下看,上面写着:
WeakMaps的键仅属于Object类型
因此,不能在WeakMap
中使用字符串作为键
尝试:
var obj={a:1};
var-arr=[[obj,1]];
var wm1=新的弱映射(arr);
console.log(wm1.has(obj))
weakmap构造函数接受一组键值对,即两个元素数组。
var o = {a:1};
var arr = [[o, 10]];
var wm1 = new WeakMap(arr);