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

如何检查JavaScript对象中不存在空字符串与空数组值?

检查JavaScript对象属性非空的实现方案

针对你给出的load对象,要确保其中的字符串属性非空、数组属性非空,可以通过以下两种方式实现:

1. 针对性校验(适合固定结构的对象)

直接对每个属性做类型和值的校验,逻辑清晰明确:

const load = { trolleyNo: "", trolleyItems: [], cartType: "" };

function validateLoad(loadObj) {
  // 校验trolleyNo:必须是非空字符串(trim用于排除全空格场景)
  if (typeof loadObj.trolleyNo !== 'string' || loadObj.trolleyNo.trim() === "") {
    return false;
  }
  // 校验trolleyItems:必须是非空数组
  if (!Array.isArray(loadObj.trolleyItems) || loadObj.trolleyItems.length === 0) {
    return false;
  }
  // 校验cartType:必须是非空字符串
  if (typeof loadObj.cartType !== 'string' || loadObj.cartType.trim() === "") {
    return false;
  }
  return true;
}

// 测试示例
console.log(validateLoad(load)); // 输出 false(当前对象属性全为空)
console.log(validateLoad({ trolleyNo: "T001", trolleyItems: [{ goodsId: 100 }], cartType: "STANDARD" })); // 输出 true

2. 通用型校验(适合结构可能变化的对象)

如果需要适配更多属性类型或后续对象结构调整,可以写一个遍历对象属性的通用校验函数:

function validateNonEmptyObject(obj) {
  for (const key in obj) {
    const value = obj[key];
    // 字符串类型:非空(可根据需求决定是否保留trim)
    if (typeof value === 'string') {
      if (value.trim() === "") {
        return false;
      }
    }
    // 数组类型:非空
    else if (Array.isArray(value)) {
      if (value.length === 0) {
        return false;
      }
    }
    // 若有其他类型(如数字、嵌套对象)需要校验,可在此扩展逻辑
  }
  return true;
}

// 测试示例
console.log(validateNonEmptyObject(load)); // 输出 false
console.log(validateNonEmptyObject({ trolleyNo: "T002", trolleyItems: [{ name: "Apple" }], cartType: "VIP" })); // 输出 true

注意事项

  • 如果不需要排除全空格的字符串,将value.trim() === ""改为value === ""即可
  • 通用校验函数可根据实际需求扩展其他类型的校验规则,比如数字不能为NaN或0等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:10:04