Javascript 从对象创建新数组

Javascript 从对象创建新数组,javascript,object,for-in-loop,Javascript,Object,For In Loop,我创建了一个JavaScript对象来获取字符串中字符的重复次数: function getFrequency(string) { // var newValsArray =[]; var freq = {}; for (var i=0; i<string.length;i++) { var character = string.charAt(i); if (freq[character]) { freq[char

我创建了一个JavaScript对象来获取字符串中字符的重复次数:

function getFrequency(string) {
  //  var newValsArray =[];
    var freq = {};
    for (var i=0; i<string.length;i++) {
        var character = string.charAt(i);
        if (freq[character]) {
           freq[character]++;
        } else {
           freq[character] = 1;
        }
    }

    return freq;
}
函数getFrequency(字符串){ //var newValsArray=[]; var freq={}; 对于(var i=0;i1){ newValsArray.push(prop+freq[prop]); } 否则如果(频率[prop]<2){ newValsArray.push(prop); } } 返回newvals数组; }
我觉得我的语法不正确或者什么的。。。如果有人有任何建议,我将非常感谢…

您没有从
newString()
显式返回任何内容,因此它将返回
未定义的
。听起来你想要这样的东西:

return newValsArray.join('');
newString()
的末尾构造一个实际字符串(而不是返回数组)。更改后,
newString(getFrequency(“Hello there”)
将返回
'He3l2o thr'
函数getFrequency(字符串){ //var newValsArray=[]; var freq={}; 对于(变量i=0;i1){ newValsArray.push(prop+freq[prop]); }否则如果(频率[prop]<2){ newValsArray.push(prop); } } 返回newValsArray.join(“”); } var mystring=“这里有一些字母,看看我们是否有任何频率匹配等等。”; var results=newString(getFrequency(mystring)); var elem=document.getElementById(“结果”); elem.innerHTML=结果;

您没有从
newString
函数返回任何内容。添加
return newString;
作为
newString
函数的最后一行。添加该行确实会导致返回某些内容,尽管我无法判断这是否是您所期望的

var text=“asdfjhwqe fj asdj qwe hlsad f jasdfj asdf alhwe sajfdhsadfjhwejr”;
var myFreq=getFrequency(文本);
显示(myFreq);
var myNewValsArray=newString(myFreq);
显示(myNewValsArray);
函数getFrequency(字符串){
//var newValsArray=[];
var freq={};
对于(var i=0;i1){
newValsArray.push(prop+freq[prop]);
}
否则如果(频率[prop]<2){
newValsArray.push(prop);
}
}
返回newValsArray;//*******添加此行
}
功能显示(msg){
document.write(“+JSON.stringify(msg,null,2)+”);

}
newString
不返回任何内容…谢谢-我只是编辑了它@Andrew Willems-我只是没有把那部分粘贴到那里…我希望我能在一个函数中完成所有这些…啊哈;-)我为此感到非常紧张-谢谢你的帮助那么你想要它返回什么?没关系,我在参加一个测试-我希望它能作为一个函数工作,而不是必须做两个函数调用@Andrew Willems-我讨厌编程测试-所以我没有做我最好的工作。。。如果我抹掉这个问题也不要生气——我会紧张得让老师看不见;-)谢谢你-我刚刚编辑了它-起初我没听清楚,但后来我听清楚了,但不幸的是它仍然不适合我。。。。不过谢谢@Ted Hopp-我做了一些工作,但仍然没有成功perfect@H.Hirschfeld-您能否提供仍然错误的详细信息?我希望能够在单个函数@Ted Hopp中返回newValsArray的值,即newString(getFrequency(string))。。。我想我应该在newString()中调用字符串w/上的getFrequency-我只是没有正确地构造它-我正在参加一个测试&只是有太多的测试焦虑/不能直接思考&没有像我所能做的那样构造这个函数:-)谢谢你help@H.Hirschfeld-好的,我对测试压力表示同情。为了将来的参考,您可以将一个字符数组(实际上是任何东西)合并为一个字符串对象,方法是将所有元素合并,如我在回答中所示。(您可以选择在元素之间添加分隔符,但使用如我所示的空字符串将导致所有元素在没有分隔符的情况下串在一起,这正是我所希望的。)
return newValsArray.join('');