Javascript 映射默认值
我正在寻找类似于地图默认值的东西Javascript 映射默认值,javascript,arrays,dictionary,default-value,Javascript,Arrays,Dictionary,Default Value,我正在寻找类似于地图默认值的东西 m = new Map(); //m.setDefVal([]); -- how to write this line??? console.log(m[whatever]); 现在结果未定义,但我想得到空数组[]。首先回答关于标准Map的问题:ECMAScript 2015中提出的JavascriptMap不包括默认值的设置器。然而,这并不妨碍您自己实现该函数 如果您只想打印一个列表,每当m[where]未定义时,您可以: console.log(m.get
m = new Map();
//m.setDefVal([]); -- how to write this line???
console.log(m[whatever]);
现在结果未定义,但我想得到空数组[]。首先回答关于标准
Map
的问题:ECMAScript 2015中提出的JavascriptMap
不包括默认值的设置器。然而,这并不妨碍您自己实现该函数
如果您只想打印一个列表,每当m[where]未定义时,您可以:
console.log(m.get('whatever')| |[])代码>
正如Li357在评论中指出的那样
如果您想重用此功能,还可以将其封装到如下函数中:
函数getMapValue(映射,键){
返回地图。获取(键)| |[];
}
//然后像这样使用它:
常数m=新映射();
log(getMapValue(m,'whatever')
空数组是空的,因此在索引[0]
m[whatever]| |[]
中没有元素。我相信您应该支持映射
构造函数已经需要的内容,不是吗?在类实现中,您传递一个新对象并将其用作引用,因此每次使用m.get时我们都返回相同的对象。我认为您应该使用defaultValue作为返回数组新实例的函数。get
的另一种实现是使用if(!this.get(key)this.set(key,this.default());
。这将允许像m.get('key').push(newValue)这样方便的单行程序
,代价是让get
方法变异对象,这有点尴尬