underscore之Collections_动力节点Java学院整理
发布时间 - 2026-01-11 02:15:48 点击率:次underscore为集合类对象提供了一致的接口。集合类是指Array和Object,暂不支持Map和Set。

map/filter
和Array的map()与filter()类似,但是underscore的map()和filter()可以作用于Object。当作用于Object时,传入的函数为function (value, key),第一个参数接收value,第二个参数接收key:
'use strict';
var obj = {
name: 'bob',
school: 'No.1 middle school',
address: 'xueyuan road'
};
var upper = _.map(obj, function (value, key) {
return value;
});
alert(JSON.stringify(upper));
你也许会想,为啥对Object作map()操作的返回结果是Array?应该是Object才合理啊!把_.map换成_.mapObject再试试。
every / some
当集合的所有元素都满足条件时,_.every()函数返回true,当集合的至少一个元素满足条件时,_.some()函数返回true:
'use strict'; // 所有元素都大于0? _.every([1, 4, 7, -3, -9], (x) => x > 0); // false // 至少一个元素大于0? _.some([1, 4, 7, -3, -9], (x) => x > 0); // true
当集合是Object时,我们可以同时获得value和key:
'use strict';
var obj = {
name: 'bob',
school: 'No.1 middle school',
address: 'xueyuan road'
};
// 判断key和value是否全部是小写:
var r1 = _.every(obj, function (value, key) {
return value;
});
var r2 = _.some(obj, function (value, key) {
return value;
});
alert('every key-value are lowercase: ' + r1 + '\nsome key-value are lowercase: ' + r2);
max / min
这两个函数直接返回集合中最大和最小的数:
'use strict'; var arr = [3, 5, 7, 9]; _.max(arr); // 9 _.min(arr); // 3 // 空集合会返回-Infinity和Infinity,所以要先判断集合不为空: _.max([]) -Infinity _.min([]) Infinity
注意,如果集合是Object,max()和min()只作用于value,忽略掉key:
'use strict';
_.max({ a: 1, b: 2, c: 3 }); // 3
groupBy
groupBy()把集合的元素按照key归类,key由传入的函数返回:
'use strict';
var scores = [20, 81, 75, 40, 91, 59, 77, 66, 72, 88, 99];
var groups = _.groupBy(scores, function (x) {
if (x < 60) {
return 'C';
} else if (x < 80) {
return 'B';
} else {
return 'A';
}
});
// 结果:
// {
// A: [81, 91, 88, 99],
// B: [75, 77, 66, 72],
// C: [20, 40, 59]
// }
可见groupBy()用来分组是非常方便的。
shuffle / sample
shuffle()用洗牌算法随机打乱一个集合:
'use strict'; // 注意每次结果都不一样: _.shuffle([1, 2, 3, 4, 5, 6]); // [3, 5, 4, 6, 2, 1] sample()则是随机选择一个或多个元素: 'use strict'; // 注意每次结果都不一样: // 随机选1个: _.sample([1, 2, 3, 4, 5, 6]); // 2 // 随机选3个: _.sample([1, 2, 3, 4, 5, 6], 3); // [6, 1, 4]
# underscore
# collections
# JavaScript专题之underscore防抖实例学习
# 手写Spirit防抖函数underscore和节流函数lodash
# underscore之function_动力节点Java学院整理
# Underscore之Array_动力节点Java学院整理
# underscore之Chaining_动力节点Java学院整理
# underscore 防抖技巧学习示例
# 都不
# 第一个
# 多个
# 则是
# 是指
# 我们可以
# 这两个
# 第二个
# 要先
# 也许会
# 暂不
# 再试
# 为空
# 大和
# 只作
# 作用于
# 应该是
# 结果是
# Object
# school
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript如何操作视频_媒体API怎么控制播放
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Python函数文档自动校验_规范解析【教程】
网站制作软件有哪些,制图软件有哪些?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
微信小程序 input输入框控件详解及实例(多种示例)
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何批量查询域名的建站时间记录?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel如何保护应用免受CSRF攻击?(原理和示例)
,在苏州找工作,上哪个网站比较好?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
高性能网站服务器配置指南:安全稳定与高效建站核心方案
用yum安装MySQLdb模块的步骤方法
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Laravel如何实现文件上传和存储?(本地与S3配置)
装修招标网站设计制作流程,装修招标流程?
Python高阶函数应用_函数作为参数说明【指导】
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何用PHP工具快速搭建高效网站?
如何生成腾讯云建站专用兑换码?
百度浏览器如何管理插件 百度浏览器插件管理方法
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel如何创建自定义Artisan命令?(代码示例)
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel集合Collection怎么用_Laravel集合常用函数详解
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何确保FTP站点访问权限与数据传输安全?
如何在建站之星网店版论坛获取技术支持?
详解Huffman编码算法之Java实现
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Python图片处理进阶教程_Pillow滤镜与图像增强
青岛网站建设如何选择本地服务器?
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel怎么连接多个数据库_Laravel多数据库连接配置

