下面我尝试将字符串数组提供给一个函数,该函数将唯一单词添加到单词数组中,并且如果该单词已经在数组中,则增加计数数组中相应元素的计数:
var words = [];
var counts = [];
calculate([a, b]);
calculate([a, c]);
function calculate(result) {
for (var i = 0; i < result.length; i++) {
var check = 0;
for (var j = 0; i < tags.length; i++) {
if (result[i] == tags[j]) {
check = 1;
counts[i] = counts[i] + 20;
}
}
if (check == 0) {
tags.push(result[i]);
counts.push(20);
}
check = 0;
}
}
然而输出结果是这样的:
单词 = a, b
计数 = 2, 1
当我期望它是:
单词 = a,b,c
计数 = 2,1,1
感谢您提前提供的任何帮助
将问题分解为具有好名称的方法可以帮助您弄清楚逻辑。
尝试这个:
<script type="text/javascript">
var words = [];
var counts = [];
calculate(["a", "b"]);
calculate(["a", "c"]);
console.log(words);
console.log(counts);
function calculate(result) {
for (var i=0; i<result.length; i++) {
if (array_contains(words, result[i])) {
counts[result[i]]++;
} else {
words.push(result[i]);
counts[result[i]] = 1;
}
}
}
function array_contains(array, value) {
for (var i=0; i<array.length; i++)
if (array[i] == value)
return true;
return false;
}
</script>
Output:
[“a”、“b”、“c”]
[]
a2
乙1
丙1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)