拆分和对象-JavaScript
我正在编写一个名为拆分和对象-JavaScript,javascript,Javascript,我正在编写一个名为“countStr”的函数 我需要返回一个对象,其中每个键都是给定字符串中的一个单词,其值是该单词在给定字符串中出现的次数。如果字符串为空,则必须返回空对象 到目前为止,我的功能如下: function countStr(str) { myObject = {}; if(str.length === 0) { return myObject; } else { myArray = str.split(' '); for(var i = 0;
“countStr”
的函数
我需要返回一个对象,其中每个键都是给定字符串中的一个单词,其值是该单词在给定字符串中出现的次数。如果字符串为空,则必须返回空对象
到目前为止,我的功能如下:
function countStr(str) {
myObject = {};
if(str.length === 0) {
return myObject;
} else {
myArray = str.split(' ');
for(var i = 0; i < myArray; i++) {
var key = myArray[i];
if(myObject.hasOwnProperty(key)) {
myObject[key]++;
} else {
myObject[key];
}
}
return myObject;
}
}
var output = countStr('ask me lots get me lots');
console.log(output); // --> IT MUST OUTPUT {ask: 1, me: 2, lots: 2, get: 1}
函数countStr(str){
myObject={};
如果(str.length==0){
返回myObject;
}否则{
myArray=str.split(“”);
对于(变量i=0;i它必须输出{ask:1,me:2,lots:2,get:1}
您能告诉我如何修复它吗?您的代码有一些小问题
长度
else
案例中用1初始化对象项var
一起使用,以避免污染顶级名称空间function countStr(str) {
var myObject = {};
if(str.length === 0) {
return myObject;
} else {
var myArray = str.split(' ');
for(var i = 0; i < myArray.length; i++) {
var key = myArray[i];
if(myObject.hasOwnProperty(key)) {
myObject[key]++;
} else {
myObject[key] = 1;
}
}
return myObject;
}
}
var output = countStr('ask me lots get me lots');
console.log(output);
函数countStr(str){
var myObject={};
如果(str.length==0){
返回myObject;
}否则{
var myArray=str.split(“”);
对于(var i=0;i
您的代码有一些小问题
长度
else
案例中用1初始化对象项var
一起使用,以避免污染顶级名称空间function countStr(str) {
var myObject = {};
if(str.length === 0) {
return myObject;
} else {
var myArray = str.split(' ');
for(var i = 0; i < myArray.length; i++) {
var key = myArray[i];
if(myObject.hasOwnProperty(key)) {
myObject[key]++;
} else {
myObject[key] = 1;
}
}
return myObject;
}
}
var output = countStr('ask me lots get me lots');
console.log(output);
函数countStr(str){
var myObject={};
如果(str.length==0){
返回myObject;
}否则{
var myArray=str.split(“”);
对于(var i=0;i
您可以像这样使用数组#reduce()
函数countStr(str){
返回str.trim().length?str.split('').reduce((o,s)=>{
o[s]=o[s]| | 0;
o[s]++;
返回o;
}, {}) : {};
}
var output=COUNTSR(‘问我很多,给我很多’);
console.log(输出);//-->{ask:1,me:2,lots:2,get:1}
你可以像这样使用Array\reduce()
函数countStr(str){
返回str.trim().length?str.split('').reduce((o,s)=>{
o[s]=o[s]| | 0;
o[s]++;
返回o;
}, {}) : {};
}
var output=COUNTSR(‘问我很多,给我很多’);
console.log(输出);//-->{问:1,我:2,抽签:2,得到:1}
函数countStr(str){
myObject={};
var myArray=[];
如果(str.length==0){
返回myObject;
}否则{
myArray=str.split(“”);
对于(var i=0;i
函数countStr(str){
myObject={};
var myArray=[];
如果(str.length==0){
返回myObject;
}否则{
myArray=str.split(“”);
对于(var i=0;i 控制台日志(输出)代码>myArray缺少长度myArray
缺少长度myArray
此外,您应该使用var
重新标记myObject
,我刚刚添加了:顺便说一句,myArray
声明也是错误的。var
不是必需的,如果你想污染你的名称空间,这就是我写should的原因。@Weedoze:没有必要运行,但是将你的局部变量泄漏到全局范围是不好的代码。另外,您应该使用var
重新标记myObject
,我刚刚添加了它。:)顺便说一句,myArray
声明也是错误的。var
不是必需的,如果你想污染你的名称空间,这就是我写should的原因。@Weedoze:没有必要运行,但是将你的局部变量泄漏到全局范围是不好的代码。