如何计算输入字段中写入的数组的出现次数?

时间:2017-10-12 07:08:50

标签: javascript arrays split

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中有一个名为“Felt”的输入字段。当用户输入数字“1,2,3,4,5”等时,我将它们拆分并将它们放在控制台日志中而不用逗号。我拥有自己的价值后想要做的是计算数字的出现次数并将结果打印在我的innerHTML“skrivUT”上

1 个答案:

答案 0 :(得分:0)

您可以使用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>