Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组的字符串中计数,JavaScript_Javascript_Arrays_String_Algorithm - Fatal编程技术网

在数组的字符串中计数,JavaScript

在数组的字符串中计数,JavaScript,javascript,arrays,string,algorithm,Javascript,Arrays,String,Algorithm,//解决 我有一个字符串数组。 我需要计算数组中每个字母中有多少个字母 我的职能: ... for (var k=0; k<=arrB.length; k++) { //Index of the array for(var t=0; t<arrB.length; t++) { if(p==arrB[k[t]]){ count++; }} }numb.push(count); } var inNu

//解决

我有一个字符串数组。 我需要计算数组中每个字母中有多少个字母

我的职能:

...
    for (var k=0; k<=arrB.length; k++) { //Index of the array
        for(var t=0; t<arrB.length; t++) {
            if(p==arrB[k[t]]){ 
    count++;
    }}
    }numb.push(count);
    }
    var inNumber;
    for(var q=0; q< numb.length; q++) {
    if(numb[q]>0) {
        var letterR=q+65; //Number in letter 
        inNumber=String.fromCharCode(letteR);
    showResult(inNumber);
    showResult(numb[q]);
    ...
。。。

对于(var k=0;k将每个字符串拆分为一个字母数组,一路上计算每次出现的次数

function countLetters(arr) {
    return arr.reduce(function (counts, str){
        str.split('').forEach(function (letter) {
            counts[letter] ? counts[letter]++ : counts[letter] = 1;
        });
        return counts;
    }, {});
};

// Example

var arr = ['ABC', 'BCD', 'CDE'];
console.log(countLetters(arr));
// Logs: Object {A: 1, B: 2, C: 3, D: 2, E: 1}

首先,在您的示例中,您有一个对象
{}
而不是数组-请修复它。解决方案

var arr = ["ABC", "CAG", "ZXZ"];

var result = {};

arr.forEach(function(item) {
  for(var i = 0; i < item.length; i++) {
    var letter = item.charAt(i);

    if (!result[letter]) {
      result[letter] = 0;
    }              

    result[letter] += 1;
  }

});
var-arr=[“ABC”、“CAG”、“ZXZ”];
var result={};
arr.forEach(功能(项目){
对于(变量i=0;i
在字符串数组中计算字母应该非常简单。例如,您可以这样做:

var-arr=[“ABC”、“CAG”、“ZXZ”];
var letterCount=arr.reduce(函数(p,c){
对于(变量i=0;i},{};
那么问题到底是什么呢?你的语法错误可能是因为你的
for
循环就在
之前,如果
有一个规则的方括号
而不是卷曲的方括号
{
。值得一提的是,JS有实际的bools。因此,没有
isFalse=0
(这是一个奇怪的变量名称,但不管怎样)您可以实际使用
isFalse=false
,然后再使用
isFalse=true
(OP对Matt Burland的答案进行了完全非格式化的注释)如果我正确理解了这个问题,那么计数就更专业了。注意Z的预期结果。我认为这是一个输入错误。他最初说
我有一个包含10个字符串的数组,每个字符串包含10个字母。我需要计算数组中每个字母的字母数。
不会打赌。lette有多少组r出现在中也将是一个有效的计数。@deceze:如果是这样,OP需要澄清这个问题。从技术上讲,他们也没有对象。这只是无效的语法。非常感谢!只有一个问题,我不需要比较这个p[c[I]]有什么?@DianaPapukchieva:No.
未定义的
被认为是错误的。你为什么要把它放在这里?{}@DianaPapukchieva:reduce
函数的种子是一个空对象。多亏大家!函数countLetters(arr){var numb=new Array();var p;for(var n=65;n