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

如何在JavaScript中去除字符串引号?Underscore _.object返回undefined问题

解决Underscore _.object调用返回undefined的问题

首先得指出你当前的核心问题:你把两个数组拼成了单个字符串传给_.object,但这个函数的设计是接收两个独立的数组参数(第一个是键数组,第二个是值数组),不是一个包含数组的字符串,这就是为什么你得到undefined的原因。

正确的用法分两种情况:

情况1:原始数据就是两个数组(非字符串形式)

直接把两个数组作为独立参数传入即可:

const names = ['moe', 'larry', 'curly'];
const ages = [30, 40, 50];
const output = _.object(names, ages);
// 输出结果:{ moe: 30, larry: 40, curly: 50 }

情况2:原始数据是字符串形式的数组拼接

如果你的输入确实是像"['moe', 'larry', 'curly'], [30, 40, 50]"这样的字符串,那得先把它转换成两个真实的数组,再传给_.object。这里不推荐用eval(有安全风险),更稳妥的方式是调整字符串格式后用JSON.parse解析:

const inputStr = "['moe', 'larry', 'curly'], [30, 40, 50]";
// 拆分字符串为两个数组的字符串片段,替换单引号为双引号(符合JSON规范)
const [namePart, agePart] = inputStr.split('], ').map(part => {
  return part.replace(/'/g, '"') + ']';
});
// 解析为真实数组
const names = JSON.parse(namePart);
const ages = JSON.parse(agePart);
// 调用_.object
const output = _.object(names, ages);
// 输出结果:{ moe: 30, larry: 40, curly: 50 }

你之前尝试去除引号没效果,是因为没解决根本问题——参数类型不对,_.object根本不识别字符串形式的数组,必须传入真实的数组对象才行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:39:17