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

JavaScript中如何正确判断数组最后一个元素是数字还是字符串?

JavaScript判断字符串拆分后最后一个元素是否为整数的正确方案

核心问题说明

你之前的实现踩了两个典型的JS类型判断坑:

  • parseInt转换非数字内容会返回NaN,而typeof NaN的结果是number,导致误判
  • 数字格式的字符串(如"2021")本身类型是string,直接用typeof判断永远不会得到number结果

推荐实现方案

方案1:正则匹配(最直观,适合严格整数判断)

直接匹配最后一个元素是否完全由数字组成,避免半数字半字符串的异常内容误判:

function isLastElementInteger(str) {
  const lastItem = str.split(" ").pop();
  // 正则匹配:只能包含数字,不能有其他字符,且长度至少为1
  // 如果需要支持负整数,可将正则调整为 /^-?\d+$/
  return /^\d+$/.test(lastItem);
}

方案2:类型转换+安全校验(适合需要拿到转换后数值的场景)

结合Number.isNaN和Number.isInteger做双重校验,避免NaN和浮点数的误判:

function isLastElementInteger(str) {
  const lastItem = str.split(" ").pop();
  const num = Number(lastItem);
  // 首先判断不是NaN,再判断是整数
  return !Number.isNaN(num) && Number.isInteger(num);
}

测试用例验证

所有常见场景的返回结果均符合预期:

  • 输入"Year 2021",返回true
  • 输入"Year mukesh",返回false
  • 输入"Hello darkness",返回false
  • 输入"Hello 221",返回true
  • 额外边界场景:输入"Year 123abc",返回false(避免半数字内容误判)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:06:05