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

3

这里有一些逗号分隔的数值,现在我只想要计算它们。

点击加载图片

这些数值为:

"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);

请指导我,我做错了什么?

6个回答

7

我认为您想要计数而不是求和。

,为分隔符进行拆分并获取长度。

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开始计数。


2
最佳答案。忽略其他回答。 - Constantine
谢谢@sagar。但是它给了我计数:空白。 - Bug Inspector

2

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);


0

你可以通过使用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);


0

要计算每个值的出现次数,您可以使用[].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;
    }, {});

0
你缺少括号。 链式函数的优先级高于标准数值运算。应该是:
var i = ('"'+checkValues+'"').split(',');

要对每个不同的值进行分组和计数,您可以使用其他提出的方法,例如:

var result = i.reduce(function(prev, curr){
  if (prev[curr]) { prev[curr]++; }
  else { prev[curr] = 1; }
  return prev;
}, {});

0
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;
},{});

希望能对你有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接