【问题标题】:Javascript - Mixed list of Integers and StringsJavascript - 整数和字符串的混合列表
【发布时间】:2017-11-27 17:47:27
【问题描述】:

所以我正在尝试创建一个脚本,其中包含一个硬编码列表,例如 10 个字符串条目和 10 个整数条目。

然后我想分配两个变量。 numberOfIntegers & numberOfCharacters。 对于列表中的每个 Int,我将 1 添加到变量 numberOfIntegers。 对于列表中的每个字符串,我将每个字符加 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);

【问题讨论】:

  • 请分享您的代码
  • 在新编辑中添加了它

标签: javascript list loops


【解决方案1】:

这里是:

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

演示:

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

首先,您应该使用 list[i] 从数组中获取所需的值,然后检查 type_of 返回的内容。您使用了严格的方程式,但结果是字符串“数字”和“字符串”...

【讨论】:

    【解决方案2】:

    您可以使用具有所需类型的对象作为属性并迭代数据并将类型作为对象的访问器以增加值。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多