[英]How to count comma separated values in javascript
在这里,我有一些逗号分隔的值。 现在我只想数一数。
值是
"160,159,158,157,156,155,143,141,140,139"
喜欢:
160: 1
159: 2
158: 3 and so on..
在我的尝试中
var checkValues = $('input[name=checkboxlist]:checked').map(function()
{
return $(this).val();
}).get();
var i = '"'+checkValues+'"'.split(',');
alert(i);
请指导我,我要去哪里错了?
我认为您想要的不是总数。
将其拆分,并获得长度
var val="160,159,158,157,156,155,143,141,140,139"; console.log("Count : ",val.split(",").length);
如果要每个值的索引和计数
然后使用
var val="160,159,158,157,156,155,143,141,140,139"; val.split(",").forEach( (x,y) => console.log(x," : ",y+1));
y+1
在那里,因为y
是位置并且从0开始
var numbers = "160,159,158,157,156,155,143,141,140,139"; // If you just want to count them : var count = numbers.split(',').length; console.log(count); // If you want to link a value and its 'index' var result = {}; numbers.split(',').forEach((e, i) => { result[e] = i + 1; }); console.log(result);
要计算每个值的出现次数,可以使用[].reduce()
const result = "160,159,158,157,156,155,143,141,140,139"
.split(/,/)
.reduce((counter, val) => {
if (!counter.hasOwnProperty(val)) counter[val] = 0;
counter[val]++;
return counter;
}, {});
您可以使用String.split将其转换为数组,
然后使用reduce来计算您的价值
var ans = "160,159,158,157,156,155,143,141,140,140,139".split(',').reduce((prev,curr)=>{ if (prev[curr]) prev[curr]++; else prev[curr] = 1; return prev; }, {}); console.log(ans);
您缺少括号。 链接功能优先于标准数值运算。 应该:
var i = ('"'+checkValues+'"').split(',');
要对每个不同的值进行分组和计数,可以使用其他建议的方法,例如:
var result = i.reduce(function(prev, curr){
if (prev[curr]) { prev[curr]++; }
else { prev[curr] = 1; }
return prev;
}, {});
var values = "160,159,158,157,156,155,143,141,140,139";
var final = values .split(',').reduce(function(accumulator, currentValue,
currentIndex) {
accumulator[currentValue] = currentIndex;
return accumulator;
},{});
希望对您有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.