如何附加到映射JavaScript?
我有地图:如何附加到映射JavaScript?,javascript,Javascript,我有地图: dataMap = new Map<string, string[]>([ ['Fruits', ['Apple', 'Orange', 'Banana']], ['Vegetables', ['Tomato', 'Potato', 'Onion']], ['Apple', ['Fuji', 'Macintosh']], ['Onion', ['Yellow', 'White', 'Purple']] ]); 要获得以下信息: ['F
dataMap = new Map<string, string[]>([
['Fruits', ['Apple', 'Orange', 'Banana']],
['Vegetables', ['Tomato', 'Potato', 'Onion']],
['Apple', ['Fuji', 'Macintosh']],
['Onion', ['Yellow', 'White', 'Purple']]
]);
要获得以下信息:
['Fruits', ['Apple', 'Orange', 'Banana', 'Huaba']]...
这个解决方案怎么样:
append(key: string, value: string[]) {
let _g = this.dataMap.get(key);
_g = _g.concat(value);
this.dataMap.set(key, _g);
}
您需要设置上一个值+新值,因此应该可以:
dataMap.set("Fruits", [...dataMap.get("Fruits"), "Huaba"]);
您需要获取
数组
并推送新值:dataMap.get('Fruits')。push('Huaba')
您可以获取该值并推送新值并进行设置
dataMap.set("Fruits", ( dataMap.get("Fruits") || [] ).concat('Huaba'));
JavaScript的语法看起来不正确,它确实内置了与映射相同的关联对象。您提供的语法看起来类似于C++或java。@ SPlatten,你们在说什么?Javascript有Map object@splaten JS有Map object mate唯一不是JS的是类型声明(
newmap
应该是newmap
,我猜OP使用的是Typescript@DominikMatis我能把一些值赋值为字符串[]吗?你是什么意思?你能写一个例子吗?我的意思是:append(key:string,value:string[]){this.dataMap.set(key,[…this.dataMap.get(key),value]);}
哦,我明白了,你想添加value
中的所有字符串,所以在这种情况下,你应该执行this.dataMap.set(key,[…this.dataMap.get(key),…value])
我能分配一些值作为string[]吗?我的意思是追加['A',B']
?@OPV是的,您可以,上面的答案也可以解决这个问题
dataMap.set("Fruits", ( dataMap.get("Fruits") || [] ).concat('Huaba'));