繁体   English   中英

如何在JavaScript中计算逗号分隔的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM