Javascript - 整数和字符串的混合列表

时间:2017-11-27 17:47:28

标签: javascript list loops

所以我试图创建一个脚本,该脚本有一个硬编码列表,可以说10个字符串条目和10个整数条目。

然后我要分配两个变量。 numberOfIntegers& numberOfCharacters。 对于列表中的每个Int,我向变量numberOfIntegers添加1。 对于列表中的每个字符串,我将每个字符添加1到变量numberOfCharacters。

我尝试用foreach和typeof来解决这个问题,但似乎无法让它工作,我现在转向其他人,希望有人知道如何解决这个问题。

这是代码

var numberOfIntegers = 0;
var numberOfCharacters = 0;


var list = ["tdgatzsdsbec",2, "wjlkqbgusdfc",21,"pmyxfmcwbzeg",0213,"tmhnfrkokodr",
            92015325,"wowkvodnizlm",312893251,"mylpfjvlepal",8585,"mvetmwqtqxrw",2145232,"nhamifvtpblz", 888,
            "uvcfspifmipk", 12337,"dcjupeufpknt"];



for (var i = 0; i < list.length; i++){
      if (typeof list.indexOf(i) === Number){
          numberOfIntegers++;
      }
      if (typeof list.indexOf(i) === String){
          i.length += numberOfCharacters;
      }
}

console.log(numberOfIntegers);
console.log(numberOfCharacters);

2 个答案:

答案 0 :(得分:0)

这是:

    var numberOfIntegers = 0;
var numberOfCharacters = 0;


var list = ["tdgatzsdsbec",2, "wjlkqbgusdfc",21,"pmyxfmcwbzeg",0213,"tmhnfrkokodr",
            92015325,"wowkvodnizlm",312893251,"mylpfjvlepal",8585,"mvetmwqtqxrw",2145232,"nhamifvtpblz", 888,
            "uvcfspifmipk", 12337,"dcjupeufpknt"];



for (var i = 0; i < list.length; i++){

      if (typeof list[i] === 'number'){
          numberOfIntegers++;
      }
      if (typeof list[i] === 'string'){
          numberOfCharacters+=list[i].length ;
      }
}

console.log(numberOfIntegers);
console.log(numberOfCharacters);

演示:

&#13;
&#13;
var numberOfIntegers = 0;
var numberOfCharacters = 0;


var list = ["tdgatzsdsbec",2, "wjlkqbgusdfc",21,"pmyxfmcwbzeg",0213,"tmhnfrkokodr",
            92015325,"wowkvodnizlm",312893251,"mylpfjvlepal",8585,"mvetmwqtqxrw",2145232,"nhamifvtpblz", 888,
            "uvcfspifmipk", 12337,"dcjupeufpknt"];



for (var i = 0; i < list.length; i++){

      if (typeof list[i] === 'number'){
          numberOfIntegers++;
      }
      if (typeof list[i] === 'string'){
          numberOfCharacters+=list[i].length ;
      }
}

console.log(numberOfIntegers);
console.log(numberOfCharacters);
&#13;
&#13;
&#13;

首先,您应该使用list [i],从数组中获取所需的值,然后检查type_of返回的内容。你使用了严格的等式,但你得到了字符串&#39; number&#39;和&#39; string&#39;结果......

答案 1 :(得分:0)

您可以使用具有所需类型的对象作为属性并迭代数据并将该类型作为对象的继承者来增加值。

var list = ["tdgatzsdsbec", 2, "wjlkqbgusdfc", 21, "pmyxfmcwbzeg", 213, "tmhnfrkokodr", 92015325, "wowkvodnizlm", 312893251, "mylpfjvlepal", 8585, "mvetmwqtqxrw", 2145232, "nhamifvtpblz", 888, "uvcfspifmipk", 12337, "dcjupeufpknt"],
    result = { number: 0, string: 0 };

list.forEach(v => result[typeof v]++);

console.log(result);