Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 字符串拆分并计算出现的次数以及_Javascript_Jquery_String_Split - Fatal编程技术网

Javascript 字符串拆分并计算出现的次数以及

Javascript 字符串拆分并计算出现的次数以及,javascript,jquery,string,split,Javascript,Jquery,String,Split,我有一根绳子 var stringIHave = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$"; 如何从JSON(如Java=8等)中获取每个条目的出现次数,即我得到的出现次数。首先,您需要将srting拆分为数组: var keywordsArr = stringIHave.split( '$$' ); 然后,您

我有一根绳子

var stringIHave = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$";

如何从JSON(如Java=8等)中获取每个条目的出现次数,即我得到的出现次数。首先,您需要将srting拆分为数组:

var keywordsArr = stringIHave.split( '$$' );
然后,您需要一个对象来存储计数:

var occur = {};
然后只需创建简单for循环即可计算所有事件:

for( var i = 0; i < keywordsArr.length; i++ ) {
    occur[ keywordsArr[ i ] ] = ( occur[ keywordsArr[ i ] ] || 0 ) + 1;
}
请参阅,但不包括最后一个元素

因此,最终代码如下所示:

var stringIHave = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$",
  keywordsArr = stringIHave.split( '$$' ),
  occur = {};

keywordsArr.pop();

for( var i = 0; i < keywordsArr.length; i++ ) {
    occur[ keywordsArr[ i ] ] = ( occur[ keywordsArr[ i ] ] || 0 ) + 1;
}

for( var key in occur ) {
    document.write( key + ' - ' + occur[key] + '<br/>' );        
} ​
var stringIHave=“Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Hibernate$$Java$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$”,
关键字sar=stringIHave.split(“$$”),
发生={};
关键词sarr.pop();
对于(变量i=0;i');
} ​

我建议如下:

function stringCount(haystack, needle) {
    if (!needle || !haystack) {
        return false;
    }
    else {
        var words = haystack.split(needle),
            count = {};
        for (var i = 0, len = words.length; i < len; i++) {
            if (count.hasOwnProperty(words[i])) {
                count[words[i]] = parseInt(count[words[i]], 10) + 1;
            }
            else {
                count[words[i]] = 1;
            }
        }
        return count;
    }
}

console.log(stringCount("Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$", '$$'));
​
函数stringCount(草堆、针){
如果(!针| |!干草堆){
返回false;
}
否则{
var words=干草堆。分割(针),
计数={};
for(var i=0,len=words.length;i

参考资料:


将字符串拆分为数组,将数组放入对象中会处理重复项,并将出现的项作为对象中的键/值对进行计数,请参见FIDLE

var stringIHave = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$",
    s = stringIHave.split('$$');
    obj = {};

for (var i=s.length; i--;) {
    obj[s[i]] = (s[i] in obj) ? obj[s[i]]+1 : 1;
}

//    obj.Java == 8

最终目标是什么还不完全清楚。下面从字符串创建一个对象,该字符串如下所示

创建的对象:

{
 "Java": 8,
 "jQuery": 4,
 "Hibernate": 1,
 "Spring": 1,
 "Instagram": 1
}
JS:


演示:

如果您想要它又短又甜:

// variable declarations
var arParts = stringIHave.match(/\w+/g), 
    result = {}, 
    i = 0, 
    item;

// Copy the array to result object      
while (item = arParts[i++]) result[item] = (result[item] || 0 ) + 1;

现在你可以做几天

const str=“Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Hibernate$$Java$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$”;
var result=str.split($$).reduce(函数(acc,curr){
货币&(acc[curr]=(acc[curr]+1)| | 1);
返回acc
}, {});

控制台日志(结果)另请参见,这是唯一帮助我在经历了令人沮丧的最后6小时后获得计数或重复数的答案。我有一个字符串数组,我必须将它们连接在一起,然后使用您的逻辑能够找到完整字符串中的重复单词。我相信这可能是太多的开销,但我现在只是松了一口气得到一个解决方案。
var str = 'Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$';
var arr = str.split('$$')
var obj = {};

for (i = 0; i < arr.length; i++) {
    if (arr[i] != '') {
        if (!obj[arr[i]]) {
            obj[arr[i]] = 0;
        }
        obj[arr[i]]++;

    }
}
var jQueryOccurences= obj['jQuery'];
// variable declarations
var arParts = stringIHave.match(/\w+/g), 
    result = {}, 
    i = 0, 
    item;

// Copy the array to result object      
while (item = arParts[i++]) result[item] = (result[item] || 0 ) + 1;