ES2015如何判断数组对象中是否存在非空office_id值
解决方案:判断数组中是否存在非空数值型office_id
嘿,这个需求用JavaScript的数组方法就能轻松搞定,some()方法简直是为这个场景量身定做的——只要找到一个符合条件的元素就立刻返回true,遍历到最后都没找到才返回false,完美匹配你的验证需求。
核心代码实现
// 示例数组(和你给出的结构一致) const process = [ { office_id: "" }, { office_id: 6 }, { office_id: "" } ]; const hasValidOfficeId = process.some(item => { // 验证逻辑:排除空字符串,同时确保是数值类型 return item.office_id !== "" && typeof item.office_id === "number"; }); console.log(hasValidOfficeId); // 输出:true
代码细节解释
some()方法会遍历数组中的每个对象,一旦发现某个对象满足回调里的条件,就立即停止遍历(不用浪费性能检查剩下的元素),直接返回true;如果所有元素都不满足条件,才返回false。- 我们的判断逻辑刚好贴合你的业务场景:
- 先排除默认的空字符串值
item.office_id !== "" - 再确保这个值是数值类型
typeof item.office_id === "number",对应用户选中内容后生成的带数值ID的对象。
- 先排除默认的空字符串值
扩展:兼容字符串形式的ID
如果你的业务里有可能出现字符串类型的数字ID(比如"6"),可以把验证条件调整为下面这样,同时兼容数值和合法数字字符串:
const hasValidOfficeId = process.some(item => { const parsedId = Number(item.office_id); return item.office_id !== "" && !isNaN(parsedId); });
内容的提问来源于stack exchange,提问作者Ikong
相关产品推荐
相关产品推荐

