2017-10-12 2 views
2
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"에 결과를 출력하는 것입니다.입력 필드에 작성된 배열의 수를 어떻게 계산합니까?

+0

가 '기능의 단부에이를 추가 knapp''skrivUt.innerHTML = ""+ 사항 Array.length + "";'. –

+0

그냥 인덱스의 양을 계산하고 발생하지는 않습니다. –

답변

0

단일 값의 발생을 계산하기 위해 배열을 사용하고 개체를 사용할 수 있습니다. 계산 후 개체를 보여줍니다.

카운트는 프로토 타입이없는 객체와 함께 작동하며 true 값을 가진 속성이 사용 가능한지 확인한 다음 카운터를 증가시킵니다. 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>

+0

나는 이것을 설명하는 방식을 좋아합니다! 고맙습니다. 내가 당신의 코드 스 니펫을 실행할 때 대괄호가 인쇄되었습니다. 그게 일어날 거니? 나는 코드를 아직 테스트 할 수 없기 때문에 휴대 전화 ATM에있다. –

+0

맞다. 출력물 전체를 얻는다. 형식화 된 다른 출력을 얻으려면 키와 값을 반복 처리해야합니다. 결과가 어떻게 보일 것인가는 질문에 빠져 있습니다. –

+0

나는 본다! 거기에 개체 및 JSON없이 그것을 할 다른 방법이 있습니까? –