Javascript,简化了对象转换
作者:互联网
因此,我有一个函数可以接收一个对象,然后将其变成一个(略有不同)对象.我首先进行了调试,以使其正常运行,现在我想简化此功能,我觉得可以减少一点,但可以使用一些帮助.
所以对象像这样传递
{"module1":{"calender":["yes","no","maybe"]}}
像这样吐出来
{module1: "calender,yes,no,maybe"}
所以这就是我现在所拥有的:
function(obj) {
for (i in obj) {
for (p in obj[i]) {
var decodeModule = encodeURIComponent(decodeURIComponent(i));
var newObj = {};
var frontOf = encodeURIComponent(p);
var backOf = ""
//needs work
var lastItem = obj[i][p][obj[i][p].length - 1];
for (y in obj[i][p]) {
if (obj[i][p][y] == lastItem) {
//replace "," in last item
backOf += encodeURIComponent(decodeURIComponent(obj[i][p][y]));
} else {
backOf += encodeURIComponent(decodeURIComponent(obj[i][p][y])) + ",";
}
};
newObj[decodeModule] = frontOf + "," + backOf;
}
}
return newObj;
}
因此,我已经知道我不需要循环第二次循环(对于(在obj [i]中的p)),因为该级别始终只有1个项目.除此之外,我在如何清理此位上还有些卡住-建议我检查.reduce或.map以使用较少的代码?如果在这里有用,我也在代码中使用下划线.如果有人可以帮助我使它变得更优雅,我会喜欢的.谢谢阅读!
解决方法:
好的,这是一个有趣的练习.完成后,我就像是“为什么我们要再做一次?”
标签:underscore-js,javascript 来源: https://codeday.me/bug/20191120/2044904.html