Underscore _.object函数返回undefined,请求技术排查帮助
问题分析与解决
咱们来一步步拆解你代码里的问题,找到为什么会返回undefined:
1. 变量名拼写错误
你定义的数组变量是arr,但后续调用JSON.stringify(array)时用了array——这个变量根本没被定义,这是第一个需要修正的低级错误(不过你说得到undefined,可能是输入时的笔误,但这确实会影响代码执行)。
2. 错误地把数组转为字符串处理
_.object函数的参数要求是数组类型:要么是包含键值对的二维数组(比如[['moe',30], ['larry',40]]),要么是分别传入键数组和值数组(_.object(keysArray, valuesArray))。但你把数组转成字符串再截取,得到的是一个字符串内容,_.object无法解析这种参数,所以直接返回了undefined。
正确的实现方式
针对你的需求,直接用_.object接收键数组和值数组就可以达成目标:
var arr = [['moe', 'larry', 'curly'], [30, 40, 50]]; // 直接传入键数组和对应的值数组 var result = _.object(arr[0], arr[1]); console.log(result); // 输出: { moe: 30, larry: 40, curly: 50 }
你也可以把原数组转换成键值对的二维数组再传入,效果是一样的:
var arr = [['moe', 'larry', 'curly'], [30, 40, 50]]; var keyValuePairs = arr[0].map((key, index) => [key, arr[1][index]]); var result = _.object(keyValuePairs); console.log(result); // 同样得到 { moe: 30, larry: 40, curly: 50 }
这样就能得到你想要的对象啦~
内容的提问来源于stack exchange,提问作者Ananth
相关产品推荐
相关产品推荐

