一.将value为对象数组的map转换成一维对象数组
underscoreTest.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Underscore</title> <script src="lib/underscore/underscore1.6.0.js"></script> </head> <body> </body> </html> <script type="text/javascript"> var map = {'01':[{id:'001',name:'test001'},{id:'003',name:'test003'},{id:'002',name:'test002'}],'02':[{id:'004',name:'test004'},{id:'005',name:'test005'},{id:'008',name:'test008'}]}; console.log(_.flatten(_.toArray(map))); </script>
运行结果:
二.将成员为key-value的数组转换成一维对象数组,其中value又是一个对象数组
underscoreTest02.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Underscore</title> <script src="lib/underscore/underscore1.6.0.js"></script> </head> <body> </body> </html> <script type="text/javascript"> var arr1 = [{name:'car1',age:'29'},{name:'bi',age:'28'}]; var arr2 = [{name:'car01',age:'39'},{name:'bi01',age:'38'}]; var arr3 = [{name:'car02',age:'49'},{name:'bi02',age:'48'}]; var arrMap = []; arrMap['arr1'] = arr1; arrMap['arr2'] = arr2; arrMap['arr3'] = arr3; console.log(arrMap); console.log(_.flatten(_.values(arrMap))); </script>
运行结果:
三.filter及each的使用
underscoreTest03.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Underscore</title> <script src="lib/underscore/underscore1.6.0.js"></script> </head> <body> </body> </html> <script type="text/javascript"> var jsonArr = [{'isChecked': true,'value':'01'},{'isChecked': false, 'value':'03'},{'isChecked': true, 'value':'02'}]; var afterFilter = _.filter(jsonArr, function(a) { return a.isChecked; }); _.each(afterFilter, function(item) { document.write(item.isChecked + ' ' + item.value + '<br/>'); }); </script>
运行结果:
四.each与flatten的综合使用
underscoreTest04.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Underscore</title> <script src="underscore-1.5.1.min.js"></script> </head> <body> </body> </html> <script type="text/javascript"> var jsonArr = [{main:{num:'1111'}},{relation:[{num:'2222'},{num:'333'}]}]; var res = []; _.each(jsonArr, function(obj) { var t = _.values(obj); res = res.concat(t); }); res = _.flatten(res); console.log(res); </script>
运行结果:
附:在js代码中加debugger关键字,调试模式下就会在debugger处暂停
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Underscore</title> <script src="lib/underscore/underscore1.6.0.js"></script> </head> <body> </body> </html> <script type="text/javascript"> debugger; var jsonArr = [{'isChecked': true,'value':'01'},{'isChecked': false, 'value':'03'},{'isChecked': true, 'value':'02'}]; var afterFilter = _.filter(jsonArr, function(a) { return a.isChecked; }); debugger; _.each(afterFilter, function(item) { document.write(item.isChecked + ' ' + item.value + '<br/>'); }); </script>
运行效果:打开首先在第一个debugger处停留,F8后就会在第二个debugger处停留。
相关推荐
综上所述,构建“超市账单管理页面”涉及HTML结构设计、页面跳转、数据展示、用户交互、页面样式美化、响应式布局等多个方面,需要综合运用HTML、CSS和JavaScript等技术,实现一个功能完整、用户友好的账单管理系统...
总而言之,这个毕业设计的前端部分需要综合运用多种前端技术和设计理念,创建一个功能完备、用户体验良好的在线判题系统。完成这样的项目不仅有助于巩固和提升开发者的技术能力,还能锻炼其解决问题和项目管理的实战...
本书还通过一个具体的项目——构建一个社交网络应用——来综合运用上述知识点。这个示例项目不仅涵盖了上述所有技术要点,还展示了如何将它们有机地结合起来,解决实际问题的过程。例如: - **前后端分离**:使用...
【jsLibs:JavaScript 库的综合探讨】 在前端开发领域,JavaScript库(简称jsLibs)扮演着至关重要的角色。这些库为开发者提供了丰富的功能,简化了代码编写,提高了开发效率,使得复杂的Web应用程序变得更为易管理...
在本项目中,"Xaiah.github.io" 是一个个人或团队在GitHub上托管的静态网站,主要用于展示新媒体...通过这些技术的综合运用,创建了一个专业的新媒体投资组合网站,既具备良好的用户体验,又展示了开发者的技术实力。
总的来说,刽子手游戏的实现是一个综合运用JavaScript、Jquery和下划线库的典型案例。它展示了如何利用这些技术创建互动性强、用户体验良好的Web应用。通过分析和理解这个项目,开发者不仅可以提升JavaScript编程...
这些工具和技术的综合运用,展示了现代前端开发的完整流程。 总的来说,“visual-sort”是一个教育性和实用性兼备的项目,它不仅有助于开发者和学习者理解排序算法,还展示了React在构建复杂交互应用中的强大能力。...
综上所述,"mvccoredonativosinsights"项目是一个综合运用JavaScript技术的捐赠数据分析平台,涵盖了前端开发的多个方面,包括但不限于数据处理、可视化、API交互、状态管理、测试和部署策略。通过这个项目,开发者...
在JavaScript环境中,可以使用像Pandas.js这样的库来处理这些任务,或者利用Node.js环境配合其他数据处理库,如Lodash或Underscore。 接下来,我们可能需要对数据进行探索性数据分析(EDA),通过统计方法寻找数据...
在本项目"ZovniMeBisT"中,开发者对一个呼叫中心的演示进行了定制...通过以上分析,我们可以看到"ZovniMeBisT"项目展示了如何综合运用现代云计算、通信API、前端技术和后端服务来构建一个功能齐全的呼叫中心解决方案。
比如,它可能使用了 React 或 Vue 这样的库来构建用户界面,利用 Axios 或 Fetch API 进行异步数据请求,运用 Lodash 或 Underscore 进行数据处理,配合 ESLint 和 Prettier 实现代码质量和格式的统一。 此外,...
【标题解析】 "weibo-hot:每小时定时爬取微博热搜榜并保存编制" 这个标题描述了...这个项目综合运用了多种 JavaScript 相关技术和工具,对于提升开发者在全栈开发、网络爬虫、数据处理等方面的能力有着很好的实践价值。
"尼尔·伯特 ACMA Recital Scheduler" 是一个基于JavaScript技术开发的应用程序,主要用于管理音乐...总的来说,这是一个综合运用JavaScript全栈开发技巧的项目,涵盖了前端交互、后端服务以及可能的数据存储和处理。