`

underscore综合运用

阅读更多

一.将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处停留。

  • 大小: 37.2 KB
  • 大小: 39.3 KB
  • 大小: 12.2 KB
  • 大小: 37.4 KB
  • 大小: 19.1 KB
分享到:
评论

相关推荐

    超市账单管理页面

    综上所述,构建“超市账单管理页面”涉及HTML结构设计、页面跳转、数据展示、用户交互、页面样式美化、响应式布局等多个方面,需要综合运用HTML、CSS和JavaScript等技术,实现一个功能完整、用户友好的账单管理系统...

    毕业设计 - 在线判题系统前端.zip

    总而言之,这个毕业设计的前端部分需要综合运用多种前端技术和设计理念,创建一个功能完备、用户体验良好的在线判题系统。完成这样的项目不仅有助于巩固和提升开发者的技术能力,还能锻炼其解决问题和项目管理的实战...

    Building Node Applications with MongoDB and Backbone.pdf

    本书还通过一个具体的项目——构建一个社交网络应用——来综合运用上述知识点。这个示例项目不仅涵盖了上述所有技术要点,还展示了如何将它们有机地结合起来,解决实际问题的过程。例如: - **前后端分离**:使用...

    jsLibs jsLibs

    【jsLibs:JavaScript 库的综合探讨】 在前端开发领域,JavaScript库(简称jsLibs)扮演着至关重要的角色。这些库为开发者提供了丰富的功能,简化了代码编写,提高了开发效率,使得复杂的Web应用程序变得更为易管理...

    Xaiah.github.io

    在本项目中,"Xaiah.github.io" 是一个个人或团队在GitHub上托管的静态网站,主要用于展示新媒体...通过这些技术的综合运用,创建了一个专业的新媒体投资组合网站,既具备良好的用户体验,又展示了开发者的技术实力。

    Hangman-Game:一个词汇游戏

    总的来说,刽子手游戏的实现是一个综合运用JavaScript、Jquery和下划线库的典型案例。它展示了如何利用这些技术创建互动性强、用户体验良好的Web应用。通过分析和理解这个项目,开发者不仅可以提升JavaScript编程...

    visual-sort:对传统排序算法做出React的可视化工具

    这些工具和技术的综合运用,展示了现代前端开发的完整流程。 总的来说,“visual-sort”是一个教育性和实用性兼备的项目,它不仅有助于开发者和学习者理解排序算法,还展示了React在构建复杂交互应用中的强大能力。...

    mvccoredonativosinsights

    综上所述,"mvccoredonativosinsights"项目是一个综合运用JavaScript技术的捐赠数据分析平台,涵盖了前端开发的多个方面,包括但不限于数据处理、可视化、API交互、状态管理、测试和部署策略。通过这个项目,开发者...

    Enerlogic-DA:Enerlogic的数据分析项目

    在JavaScript环境中,可以使用像Pandas.js这样的库来处理这些任务,或者利用Node.js环境配合其他数据处理库,如Lodash或Underscore。 接下来,我们可能需要对数据进行探索性数据分析(EDA),通过统计方法寻找数据...

    ZovniMeBisT:此代码是我对呼叫中心演示所做的更改

    在本项目"ZovniMeBisT"中,开发者对一个呼叫中心的演示进行了定制...通过以上分析,我们可以看到"ZovniMeBisT"项目展示了如何综合运用现代云计算、通信API、前端技术和后端服务来构建一个功能齐全的呼叫中心解决方案。

    okayama-univ-fes-2020:冈山大学节官方网站(令和第 2 年)

    比如,它可能使用了 React 或 Vue 这样的库来构建用户界面,利用 Axios 或 Fetch API 进行异步数据请求,运用 Lodash 或 Underscore 进行数据处理,配合 ESLint 和 Prettier 实现代码质量和格式的统一。 此外,...

    weibo-hot:每小时定时爬取微博热搜榜并保存编制

    【标题解析】 "weibo-hot:每小时定时爬取微博热搜榜并保存编制" 这个标题描述了...这个项目综合运用了多种 JavaScript 相关技术和工具,对于提升开发者在全栈开发、网络爬虫、数据处理等方面的能力有着很好的实践价值。

    neilbot:ACMA Recital Scheduler

    "尼尔·伯特 ACMA Recital Scheduler" 是一个基于JavaScript技术开发的应用程序,主要用于管理音乐...总的来说,这是一个综合运用JavaScript全栈开发技巧的项目,涵盖了前端交互、后端服务以及可能的数据存储和处理。

Global site tag (gtag.js) - Google Analytics