Javascript 如何迭代字符串并将字符推送到对象
我试图创建一个函数,在这个函数中,我接受一个包含元音的字符串,并对其进行迭代,然后将元音推送到一个对象中。我使用的是forEach循环,我不能使用任何其他类型的循环来检查每个字符,看看它是否是元音,如果是元音,我将元音字符设置为对象键,元音出现的次数将是值。以下是我目前的代码:Javascript 如何迭代字符串并将字符推送到对象,javascript,Javascript,我试图创建一个函数,在这个函数中,我接受一个包含元音的字符串,并对其进行迭代,然后将元音推送到一个对象中。我使用的是forEach循环,我不能使用任何其他类型的循环来检查每个字符,看看它是否是元音,如果是元音,我将元音字符设置为对象键,元音出现的次数将是值。以下是我目前的代码: function vowelCount(str) { let obj = {} str.split(' ') str.forEach(function(val) { obj.val = 'hi'
function vowelCount(str) {
let obj = {}
str.split(' ')
str.forEach(function(val) {
obj.val = 'hi'
})
return obj
}
我知道还有很多工作要做,但我不确定如何将与元音相等的键和出现次数设置为值。obj.val正在访问obj的属性val,所以要动态访问它,它应该是obj[val]
函数是元音{
返回aeiou.includeschar
}
函数元音计数器str{
设obj={}
str.split.forEachfunction val{
如果是元音{
obj[val]=obj[val]| | 0+1
}
}
返回obj
}
console.logvuelCoundaeiouaeiouaaaiiobj.val正在访问obj的属性val,所以要动态访问它,它应该是obj[val]
函数是元音{
返回aeiou.includeschar
}
函数元音计数器str{
设obj={}
str.split.forEachfunction val{
如果是元音{
obj[val]=obj[val]| | 0+1
}
}
返回obj
}
console.logvouelcontaiouaeiouaaaii
如果需要,可以始终过滤值以排除零计数。
不要害怕用于迭代的其他函数,如:
const vowelCount = (str = '') =>
str.split('').reduce(
(vowels, ch) => {
if (vowels[ch]) {
vowels[ch]++;
}
return vowels;
},
{ a: 0, e: 0, i: 0, o: 0, u: 0 }
);
如果需要,可以始终过滤值以排除零计数。
不要害怕用于迭代的其他函数,如:
const vowelCount = (str = '') =>
str.split('').reduce(
(vowels, ch) => {
if (vowels[ch]) {
vowels[ch]++;
}
return vowels;
},
{ a: 0, e: 0, i: 0, o: 0, u: 0 }
);
您可以创建一个包含所有元音的元音集,然后迭代提供的字符串str,并根据obj对象中的现有计数添加计数: 函数元音计数器str{ 设obj={} const chars=str.tolocalLowercase.split; 常量元音=新集合[a,e,i,o,u]; chars.forEachc=>{ if元音.hasc{ obj[c]=obj[c]| | 0+1; } }; 返回obj }
console.logvouelCountHello World!这是一个计算元音的函数 您可以创建一个包含所有元音的元音集,然后迭代提供的字符串str,并根据obj对象中的现有计数添加计数: 函数元音计数器str{ 设obj={} const chars=str.tolocalLowercase.split; 常量元音=新集合[a,e,i,o,u]; chars.forEachc=>{ if元音.hasc{ obj[c]=obj[c]| | 0+1; } }; 返回obj }
console.logvouelCountHello World!这是一个计算元音的函数;非常感谢你!你真的帮我解决了这个问题。非常感谢!你真的帮我解决了这个问题,说得通。谢谢你能帮我解释一下这行代码吗:obj[val]=obj[val]| | 0+1@azaria.deeobj[val]| | 0正在获取obj[val]的值,如果未定义,则使用0作为默认值是有意义的。谢谢你能帮我解释一下这行代码吗:obj[val]=obj[val]| | 0+1@azaria.deeobj[val]| | 0正在获取obj[val]的值,如果未定义,请使用0作为默认值谢谢您的惩罚!谢谢你的惩罚!