3 回答

TA贡献1848条经验 获得超10个赞
您应该将密钥设置为 str[char]
str[char]是str索引处的字符char
char 是一个数字变量。
function maxChar(str) {
const charMap = {}
for(let char=0; char < str.length; char++){
charMap[str[char]] = 1
}
return charMap
}
console.log(maxChar('acdef'))

TA贡献1735条经验 获得超5个赞
因为使用for...of带有字符串,char所以分配了值str[index]。要对旧语法执行相同操作,请使用charMap[str[char]]:
function maxChar(str) {
const charMap = {}
for (let char = 0; char < str.length; char++) {
charMap[str[char]] = 1;
}
return charMap;
}
console.log(maxChar('acdef'));
您还可以简化功能:
function maxChar(str) {
const charMap = {};
str.split("").forEach(function(char) {
charMap[char] = 1;
});
return charMap;
}
console.log(maxChar('acdef'))

TA贡献1815条经验 获得超13个赞
charfor循环中的变量是循环计数器,它是一个数字。为了使它更具可读性,我建议将其重命名为i,广泛用于for循环。
使用此计数器,您可以使用以下命令访问您的角色str[i]:
function maxChar(str) {
const charMap = {}
for (let i = 0; i < str.length; i++){
charMap[str[i]] = 1
}
return charMap
}
console.log(maxChar('acdef'))
您也可以使用Array.prototype.reduce()来做到这一点:
const maxChar = str => [...str].reduce((map, x) => ({ ...map, [x]: 1 }), {})
console.log(maxChar('acdef'))
添加回答
举报