You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中检测数组含字符串值时返回false的实现方法

问题说明

现有用于计算数组中正数之和的JavaScript函数,需要新增判断逻辑:当数组中存在字符串类型的元素时,函数直接返回false。
原有代码如下:

function SummPositive( numbers ) {
  var negatives = [];
  var sum = 0;

  for(var i = 0; i < numbers.length; i++) {
    if(numbers[i] < 0) {
      negatives.push(numbers[i]);
    }else{
      sum += numbers[i];
    }
  }

  console.log(negatives);

  return sum;
}

var sum_result = SummPositive( [ 1, 2, 3, 4, 5, -2, 23, -1, -13, 10,-52 ] );

console.log(sum_result);
修复方案

在遍历数组的流程最前端新增类型判断逻辑,一旦检测到字符串类型元素直接终止函数返回false即可,修复后完整代码如下:

function SummPositive( numbers ) {
  var negatives = [];
  var sum = 0;

  for(var i = 0; i < numbers.length; i++) {
    // 新增字符串类型校验
    if (typeof numbers[i] === 'string') {
      return false;
    }
    if(numbers[i] < 0) {
      negatives.push(numbers[i]);
    }else{
      sum += numbers[i];
    }
  }

  console.log(negatives);

  return sum;
}

// 纯数值数组测试
var sum_result = SummPositive( [ 1, 2, 3, 4, 5, -2, 23, -1, -13, 10,-52 ] );
console.log(sum_result); // 输出计算结果48

// 含字符串元素的数组测试
var invalid_result = SummPositive( [1, 2, 'test', 4]);
console.log(invalid_result); // 输出false

改动说明

  • 用typeof运算符做类型检测,命中字符串类型时直接返回false,终止后续计算逻辑
  • 原有收集负数、计算正数之和的逻辑完全保留,不影响原有功能
  • 类型判断放在循环最前端,遇到非法值不需要执行后续计算,执行效率更高

内容的提问来源于stack exchange,提问作者abibinyun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:54:29