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

Vue.js中如何将数组转为对象并提取指定name属性值?

解决方案

直接适配现有LocalStorage数据的代码修改

LocalStorage中存储的是数组格式的JSON字符串,JSON.parse()解析后得到的是数组而非单个对象,必须先提取数组里的第一个元素,再获取name属性:

let userData = localStorage.getItem('user-info');
// 解析数组并取第一个元素,可选链操作符避免数组为空时报错
let user = JSON.parse(userData)[0];
this.name = user?.name || '';

优化存储逻辑(后续直接存对象)

如果想后续用你原本的代码直接获取name,可以在存储数据时直接存入单个对象而非数组:

// 定义用户对象
const userObj = {"id":"56b5","name":"Willy","email":"willy@test","password":"1234"};
// 将对象转为JSON字符串存入LocalStorage
localStorage.setItem('user-info', JSON.stringify(userObj));

// 之后就能用你原本的代码获取name
let user = localStorage.getItem('user-info');
this.name = JSON.parse(user).name;

问题原因说明

你原本的代码无法得到预期结果,是因为JSON.parse(user)返回的是数组,数组本身没有name属性,必须先通过索引(这里是[0])拿到数组内部的用户对象,再读取其name属性。

内容的提问来源于stack exchange,提问作者Willy R. W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:07:03