如何检查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
相关产品推荐
相关产品推荐

