계산하면 배열이 발생합니다
-
20-08-2019 - |
문제
정규 표현과 그리스 몬키를 통해 다음과 같은 결과가 있습니다.
choice1, choice2, choice3, choice3, choice1, etc..
내 질문은 선택을 어떻게 집계하는지, 선택 1이 배열에 몇 번이나 배열에 있는지 알 수 있습니다. 선택 2가 배열에 있습니다.
궁극적 인 목표는 각 선택이 여러 페이지를 넘어서는 투표 수를 저장하는 Greasemonkey 스크립트를 만드는 것입니다 (아마도 다른 아이디어에 열려 있지만 GM_SETVALUE를 사용하는 것일 수 있습니다).
감사!
해결책
하나의 기술은 선택을 반복하고 객체 속성에서 각 고유 한 선택과 관련된 카운터를 증가시키는 것입니다.
예시:
var choiceCounts = {};
for (var iLoop=0; iLoop < aChoices.length; iLoop++) {
var keyChoice = aChoices[iLoop];
if (!choiceCounts[keyChoice]) {
choiceCounts[keyChoice] = 1;
} else {
choiceCounts[keyChoice]++;
} //if
} //for
그런 다음 속성이 배열에 존재하는 횟수와 같은 속성을 가진 객체가 있습니다.
다른 팁
당신이 찾고있는 것을 100% 확신하지는 않지만, 나는 이것이 것이라고 생각합니다.
// Original data
var choices = [
"choice 1",
"choice 1",
"choice 2",
"choice 3",
"choice 3",
"choice 3",
"choice 3",
"choice 3",
"choice 3",
"choice 4",
"choice 4",
"choice 4"];
//Create the results array
var result = new Object();
for (var choice in choices) {
if (result[choices[choice]] === undefined)
result[choices[choice]] = 1;
else
result[choices[choice]]++;
}
//Print result
var str = "";
for (var item in result)
str += item + ": " + result[item] + "<br />";
document.getElementById("resultDiv").innerHTML = str;
산출:
choice 1: 2
choice 2: 1
choice 3: 6
choice 4: 3
배열을 먼저 정렬하십시오, 그런 다음 발생을 계산하기 위해 한 번의 청소를 할 수 있습니다 (위의 Ryan의 제안과 유사).
제휴하지 않습니다 StackOverflow