编程语言
首页 > 编程语言> > Javascript,简化了对象转换

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