如题,使用ts时,Map的Keys用for of 迭代报错,代码在浏览器里面可以运行,但是在cocos里面运行没有任何效果
这是代码:
let map=new Map([
[‘ac’,‘abc’],
[‘df’,‘def’],
[‘hg’,‘hjg’]
]);
console.log(map);
let arr=map.keys();
for(let value of arr){ console.log('key value:',value,'map value:',map[value]) } for(let key in map){ console.log('key:',key,'value:',map[key]) }
这是运行的效果:
这是把这段代码单独复制到浏览器里面运行的结果:
更新一下,解决了,map的keys是迭代器类型,不是数组。我还是转成数组处理吧,贴下代码:
test(){
// let map=new Map([
// [‘ac’,‘abc’],
// [‘df’,‘def’],
// [‘hg’,‘hjg’]
// ]);
let map:Map<string, string> =new Map([
['ac','abc'],
['df','def'],
['hg','hjg']
]);
console.log(map);
let arr=(map.keys() as any)as Array<string>;
console.warn('arr:',arr);
for(let value of arr){
console.log('key value:',value,'map value:',map[value])
}
for(let key in map){
console.log('key:',key,'value:',map[key])
}
let list=[];
map.forEach((value,key)=>{
console.log('value:',value,'key:',key);
list.push([key,value]);
});
console.log('list:',list);
let newMap=new Map(list);
console.log('new map:',newMap);
let jsonText=JSON.stringify(list);
let jsonMap=new Map(JSON.parse(jsonText));
console.log('jsonMap:',jsonMap);
}
运行结果:
这是我的ts 项目配置,用的es2018:




