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

如何拆分点分隔路径读取嵌套对象属性,实现router.push兼容多场景

核心问题分析

你现有代码的问题在于:直接将拆分得到的路径数组作为索引传入getCurrent.value[route1],JS会自动把数组转为逗号连接的字符串,比如['sale','id']会变成'sale,id',自然无法匹配到嵌套的sale.id属性。

修复代码

你不需要单独判断路径是否带点,字符串调用split('.')时如果没有点会直接返回仅包含原字符串的数组,可以直接统一处理逻辑:

// 1. 统一拆分路径,不需要额外判断是否包含点
const pathSegments = modus.value.getCurrentDataPath.split('.')
// 2. 逐层读取嵌套属性
let targetValue = getCurrent.value
for (const seg of pathSegments) {
  // 兼容属性不存在的边界情况,避免报错
  if (targetValue == null) break
  targetValue = targetValue[seg]
}
// 3. 路由跳转
router.push({ path: `${route.path}/${targetValue}` })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:54:03