使用jQuery计算数组中的值频率
Count value frequencies in an array with jQuery
我有一个表单,在一个页面上有几个选择题,使用serializeArray
给我一个数组,如
[
{
name: "question1",
value: "a"
},
{
name: "question2",
value: "a"
},
{
name: "question3",
value: "b"
}
]
依次类推(每个问题都有答案选项a、b和c)。
我如何计算数组中每个答案(a, b和c)的频率,并将计数作为变量(a = 2, b = 1)?
根本不需要jQuery。
var array = [
{
name: "question1",
value: "a"
},
{
name: "question2",
value: "a"
},
{
name: "question3",
value: "b"
}
]
var counts = {};
array.forEach(function(element) {
if (!counts[element.value]) {
counts[element.value] = 0;
}
counts[element.value] += 1;
});
console.log(counts);
// Output :
// {"a" : 2, "b" : 1}
像这样:
var countArray = {}
$.each(dataArray, function(index, value){
if(countArray[value.value] == undefined)
countArray[value.value] = 0;
countArray[value.value]++;
});
试试这个:您可以迭代答案数组并将计数保存在单独的映射中,其中答案值是键。参见下面的代码-
var answerArray = [
{
name: "question1",
value: "a"
},
{
name: "question2",
value: "a"
},
{
name: "question3",
value: "b"
}
];
var countMap = {};
$.each(answerArray, function(k, v){
countMap[v.value] = (countMap[v.value])? (parseInt(countMap[v.value])) + 1 : 1;
});
alert(JSON.stringify(countMap));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
simple:
var answers = [
{
name: "question1",
value: "a"
},
{
name: "question2",
value: "a"
},
{
name: "question3",
value: "b"
}
]
var histogram = {};
for ( var n = 0; n <answers.length; n++ )
{
if ( !histogram[answers[n].value] )
histogram[answers[n].value] = 1;
else
histogram[answers[n].value] ++;
}
应该给出:
{
"a": 2,
"b": 1,
}
紧凑的jQuery解决方案:
var count = {a: 0, b: 0, c: 0};
$(array).map(function(){
count[this.value]++;
});
结果是:
{a: 2, b: 1, c: 0}
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Undercore:查找数组中出现频率最高的对象
- 计算 JavaScript 中数组中元素的频率
- 下划线.js:查找数组中出现频率最高的值
- 按频率排序子字符串数组-JS
- 使用jQuery计算数组中的值频率
- 按出现频率对数据数组进行排序
- 根据数组中坐标的频率创建多个数组
- JavaScript:使用一个对象在数组上迭代并跟踪项目频率
- D3.js直方图不能与每个箱子的总频率数组一起工作
- 计算数组元素的出现次数/频率