我如何计算在输入字段中写入的数组的出现次数?
window.onload = oppstart;
var string=[];
function oppstart() {
document.getElementById("knapp").onclick=knapp;
}
function knapp(){
var felt = document.getElementById("felt").value;
var array = new Array();
array = felt.split(",");
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
}
var skrivUt = document.getElementById("utskrift");
document.getElementById("utskrift").innerHTML = " ";
}
所以我有一个名为“毛毡”在HTML中的输入字段。当用户输入数字“1,2,3,4,5”等我拆分他们,并把他们在没有逗号的控制台日志。我有我的价值观后,我想要做的是计算数字的出现并在我的innerHTML上打印结果“skrivUT”我如何计算在输入字段中写入的数组的出现次数?
您可以采用tha数组并使用一个对象来计算单个值的出现次数。计数后显示对象。
该计数适用于没有任何原型的对象,它会检查具有真值的属性是否可用,然后增加计数器。在oser情况下,将第一个计数分配给属性。
window.onload = oppstart;
function getPlural(number, word) {
return number === 1 && word.one || word.other;
}
function joinNice(array) {
var a = array.slice(); // take copy, prevent mutation of array
return a.concat(a.splice(-2, 2).join(' and ')).join(', ');
}
function oppstart() {
document.getElementById("knapp").onclick = knapp;
}
function knapp() {
var count = Object.create(null),
felt = document.getElementById("felt").value,
skrivUt = document.getElementById("utskrift"),
array = felt.split(","),
i;
for (i = 0; i < array.length; i++) {
if (count[array[i]]) {
++count[array[i]];
} else {
count[array[i]] = 1;
}
}
utskrift.innerHTML = 'You wrote: ' + joinNice(Object.keys(count).map(function (k) {
return count[k] + ' ' + getPlural(count[k], time) + ' item ' + k;
})) + '.';
}
var time = { one: 'time', other: 'times' };
<input id="felt"> <button id="knapp">submit</button>
<p id="utskrift"></p>
我喜欢你解释这个的方式!谢谢。当我运行你的代码片段时,我也打印了括号。这是否应该发生?我在手机atm,所以我不能测试代码 –
正确的,你得到了输出中的整个对象。如果你想获得另一个格式化的输出,你可以遍历键和值。问题中缺少结果应该如何。 –
我明白了!有没有其他的方式来做到没有对象和JSON? –
在功能'末尾添加该knapp':'skrivUt.innerHTML = “” + array.length + “”;'。 –
它只是计算索引的数量,而不是发生的事情 –