字母的异分位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
leetcode-49:
//字母异位词分组 /* * for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象. 与forEach()不同的是,它可以正确响应break、continue和return语句 for-of循环不支持普通对象,但如果你想迭代一个对象的属性, 你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法: */ function angontran(strs) { if(strs.length ===0){ return [] } let map = new Map() for(const str of strs){ let characte = new Array(26).fill(0) for(let i=0;i<str.length;i++){ const ascii = str.charCodeAt(i)-97 characte[ascii]++ } const key = characte.join(",") if(map,get(key)){ map.set(key,[...map.get(key),str]) }else{ map.set(key,str) } } let res = [] //for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。 //for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name for(let arr of map){ //for of 遍历map 类型 res.push(arr[1]) } return res }