Che*_*tan 5 javascript string jquery split
我有一个字符串
var stringIHave = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$";
Run Code Online (Sandbox Code Playgroud)
如何计算每个条目的出现次数,我得到的是来自JSON,如Java = 8等...
首先,你需要将你的srting分成数组:
var keywordsArr = stringIHave.split( '$$' );
Run Code Online (Sandbox Code Playgroud)
那么你需要有一个对象来存储计数:
var occur = {};
Run Code Online (Sandbox Code Playgroud)
然后只需创建简单的for循环来计算所有出现次数:
for( var i = 0; i < keywordsArr.length; i++ ) {
occur[ keywordsArr[ i ] ] = ( occur[ keywordsArr[ i ] ] || 0 ) + 1;
}
Run Code Online (Sandbox Code Playgroud)
现在,您的对象occur将具有名称作为键并计为值.
请参阅jsFiddle 演示.
另外,就像你在字符串末尾一样,$$你可能需要删除最后一项,keywordsArr所以只需在split函数调用后执行:
keywordsArr.pop();
Run Code Online (Sandbox Code Playgroud)
查看没有last元素的demo.
所以最终的代码将是:
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/>' );
} ?
Run Code Online (Sandbox Code Playgroud)
我建议如下:
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$$", '$$'));
?
Run Code Online (Sandbox Code Playgroud)
参考文献:
小智 1
现在你可以做
const str = "Java$$Java$$jQuery$$Java$$jQuery$$Java$$Java$$Java$$Hibernate$$Java$$Java$$Spring$$Instagram$$jQuery$$jQuery$$";
var result = str.split("$$").reduce(function(acc, curr) {
curr && (acc[curr] = (acc[curr] + 1) || 1);
return acc
}, {});
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40779 次 |
| 最近记录: |