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

Lodash使用索引访问器返回true而非实际数值问题求助

问题解决思路与方案

核心原因

你的问题本质是allUsers数组中存在不符合预期格式的用户条目,原find条件过于宽松,导致匹配到了结构异常的元素,进而出现索引3返回true的情况。

排查与验证

先在获取currentUser后打印完整数据,确认异常条目的结构:

let currentUser = _.chain(allUsers).find(o => o[0] == 'username').value();
console.log('当前用户完整结构:', currentUser);

你会发现部分currentUser并非预期的4元素数组——可能是数组长度不足、索引3被错误赋值为true,甚至是伪装成数组的对象。

解决方案

  1. 严格过滤合法条目
    加强find的匹配条件,确保只返回符合格式的4元素数组:

    let currentUser = _.chain(allUsers)
      .find(o => Array.isArray(o) && o.length === 4 && o[0] === 'username')
      .value();
    
    • 用Array.isArray(o)验证是数组类型
    • 用o.length === 4确保结构完整
    • 用===代替==避免隐式类型转换带来的误匹配
  2. 增加容错处理
    若无法避免异常数据,在获取最后登录时间时做兜底:

    const lastLoginTime = Array.isArray(currentUser) && currentUser.length >= 4 
      ? currentUser[3] 
      : '无效的用户数据';
    console.log(lastLoginTime);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:15:37