Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想做一个这个计数对象,但我不知道如何解决它 函数test1(str){ 设arr=str.toLowerCase().split(“”); 设obj={}; 设len=arr.长度; for(设i=0;i{ask:1,a:3,bunch:3,try:1,get:1};_Javascript_Object_Count - Fatal编程技术网

Javascript 我想做一个这个计数对象,但我不知道如何解决它 函数test1(str){ 设arr=str.toLowerCase().split(“”); 设obj={}; 设len=arr.长度; for(设i=0;i{ask:1,a:3,bunch:3,try:1,get:1};

Javascript 我想做一个这个计数对象,但我不知道如何解决它 函数test1(str){ 设arr=str.toLowerCase().split(“”); 设obj={}; 设len=arr.长度; for(设i=0;i{ask:1,a:3,bunch:3,try:1,get:1};,javascript,object,count,Javascript,Object,Count,我希望它是{ask:1,a:3,bunch:3,try:1,get:1}但在各种情况下都是错误的-如何修复它 谢谢你的关注。但其他条件也有问题。 它的另一个条件,刚刚更新 let output1=test1('ab c d c b a') console.log(输出);//-->{a:2,b:2,c:2,d:1} 让output2=test1(“”) console.log(输出);//-->{} 所以基本上是检查对象是否存在 如果是,则增加计数器 如果否,请创建属性并用1初始化其计数器

我希望它是
{ask:1,a:3,bunch:3,try:1,get:1}但在各种情况下都是错误的-如何修复它

谢谢你的关注。但其他条件也有问题。 它的另一个条件,刚刚更新

let output1=test1('ab c d c b a')
console.log(输出);//-->{a:2,b:2,c:2,d:1}
让output2=test1(“”)
console.log(输出);//-->{}

所以基本上是检查对象是否存在

  • 如果是,则增加计数器
  • 如果否,请创建属性并用1初始化其计数器
函数对象计数(str){
设arr=str.toLowerCase().split(“”);
设obj={};
for(设i=0;iconsole.log(输出);//-->{ask:1,a:3,bunch:3,try:1,get:1}所以基本上是检查对象是否存在

  • 如果是,则增加计数器
  • 如果否,请创建属性并用1初始化其计数器
函数对象计数(str){
设arr=str.toLowerCase().split(“”);
设obj={};
for(设i=0;iconsole.log(输出);//-->{ask:1,a:3,bunch:3,try:1,get:1}
而不是使用
includes
将特定单词的计数设置为1(如果第一次出现),如果第二次出现,只需增加该值即可。如果使用
arr.includeds()
,它只会检查该数组中是否存在特定的单词,而不能检查它是否第一次出现。以下是工作示例:

函数对象计数(str){
设arr=str.split(“”);
设obj={};
设len=arr.长度;
for(设i=0;iconsole.log(输出);//-->{ask:1,a:3,bunch:3,try:1,get:1}
而不是使用
includes
将特定单词的计数设置为1(如果第一次出现),如果第二次出现,只需增加该值即可。如果使用
arr.includeds()
,它只会检查该数组中是否存在特定的单词,而不能检查它是否第一次出现。以下是工作示例:

函数对象计数(str){
设arr=str.split(“”);
设obj={};
设len=arr.长度;
for(设i=0;i{ask:1,a:3,bunch:3,try:1,get:1}最简单的解决方案


函数objectCount(str){
设obj={};
设arr=str.toLowerCase().split(“”);
arr.forEach(项目=>{obj[项目]=(obj[项目]| | 0)+1});
返回obj;
}
让output=objectCount('ask a bunch try a bunch get a bunch');
控制台日志(输出);
最简单的解决方案


函数objectCount(str){
设obj={};
设arr=str.toLowerCase().split(“”);
arr.forEach(项目=>{obj[项目]=(obj[项目]| | 0)+1});
返回obj;
}
让output=objectCount('ask a bunch try a bunch get a bunch');
控制台日志(输出);

您可以使用reduce方法执行此操作:

函数对象计数(str){
返回str.split(“”)。reduce((输出,字)=>{
常量wc=(输出[word.toLowerCase()]| | 0)+1
返回({…输出,[word.toLowerCase()]:wc}
)},{})
} 
让output=objectCount('ask a bunch try a bunch get a bunch');

console.log(输出);//-->{ask:1,a:3,bunch:3,try:1,get:1}您可以使用reduce方法执行此操作:

函数对象计数(str){
返回str.split(“”)。reduce((输出,字)=>{
常量wc=(输出[word.toLowerCase()]| | 0)+1
返回({…输出,[word.toLowerCase()]:wc}
)},{})
} 
让output=objectCount('ask a bunch try a bunch get a bunch');

console.log(输出);//-->{ask:1,a:3,bunch:3,try:1,get:1}首先要注意的是打字错误
obectCount
。谢谢!但是我还有一个条件,它仍然会发生错误。。ㅠ首先要注意的是打字错误
obectCount
。谢谢!但是我还有一个条件,它仍然会发生错误。。ㅠ您必须将其小写是错误的,预期为bunch=3@Alex,没有注意到,是的updated@Loolii,我很高兴。我意识到在这个问题上包含并不是一个好方法。。非常感谢!您必须将其小写是错误的,预期为bunch=3@Alex,没有注意到,是的updated@Loolii,我很高兴。我意识到在这个问题上包含并不是一个好方法。。非常感谢!这似乎是最好的办法!我喜欢简单。尽管我建议使用
hasOwnProperty
而不是隐式地与undefined进行比较,因为这保证总是正确的:
if(Object.prototype.hasOwnProperty.ca