2.21 shuffle

2.21.1 语法

_.shuffle(list)

2.21.2 说明

返回一个随机乱序的list副本数组, 使用 Fisher-Yates shuffle 来进行随机乱序.

2.21.3 代码示例

示例一:将集合洗牌,返回数组


//数组
var arr = [1, 2, 3, 4, 5, 6];
console.log(_.shuffle(arr)); //may be => [2, 4, 5, 1, 6, 3] //字符串
console.log(_.shuffle('123456')); //may be => ["5", "1", "2", "6", "4", "3"] //对象返回的也是数组。
var obj = {a:1, b:2, c:3, d:4, e:5};
console.log(_.shuffle(obj)); //may be => [1, 3, 4, 2, 5] //arguments
(function(){
console.log(_.shuffle(arguments)); //may be => [1, 3, 4, 5, 2]
}(1, 2, 3, 4, 5))

示例二:返回的是新组数。

var arr1 = [1, 2, 3, 4, 5, 6];
var arr2 = _.shuffle(arr1); console.log(arr1); // [1, 2, 3, 4, 5, 6]
console.log(arr2); //may be => [2, 4, 6, 1, 5, 3]

2.21.4 处理其他非集合,返回空数组

console.log(_.shuffle([])); //=> []
console.log(_.shuffle(1)); //=> []
console.log(_.shuffle(null)); //=> []
console.log(_.shuffle(undefined)); //=> []
console.log(_.shuffle(NaN)); //=> []

2.21.5 用_.sample来实现同样的功能

function shuffle(list){
return _.sample(list, list.length);
} var list = [1, 2, 3, 4, 5, 6];
var arr1 = _.shuffle(list);
var arr2 = shuffle(list); console.log(arr1); //may be => [1, 4, 5, 2, 6, 3]
console.log(arr2); //may be => [6, 5, 1, 2, 3, 4]

underscorejs-shuffle学习的更多相关文章

  1. 不学就吃亏的underscorejs类库学习示例 ——(集合篇)

    underscorejs是一个很不错的类库,我的很多项目都引用了这个类库,的确可以带来很多方便. 记得我当初学的时候,看underscorejs的api是看的一知半解的,甚至不明白api里的conte ...

  2. Hadoop学习之shuffle过程

    转自:http://langyu.iteye.com/blog/992916,多谢分享,学习Hadopp性能调优的可以多关注一下 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方, ...

  3. 小白学习之pytorch框架(2)-动手学深度学习(begin-random.shuffle()、torch.index_select()、nn.Module、nn.Sequential())

    在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比 ...

  4. 学习笔记 Hadoop的job提交过程,shuffle过程以及HA机制的实现

    一,在hadoop中的mapreduce的job提交过程比较繁琐,但掌握job的提交过程是我们进入深入学习的必要. 二,mapreduce的shuffle机制 三,Hadoop的HA机制.

  5. Hadoop学习笔记—10.Shuffle过程那点事儿

    一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduce阶段总共三个步骤,如下图所示: 其中,Step2.1就 ...

  6. Hadoop学习之路(二十三)MapReduce中的shuffle详解

    概述 1.MapReduce 中,mapper 阶段处理的数据如何传递给 reducer 阶段,是 MapReduce 框架中 最关键的一个流程,这个流程就叫 Shuffle 2.Shuffle: 数 ...

  7. Spark学习之路 (十)SparkCore的调优之Shuffle调优

    摘抄自https://tech.meituan.com/spark-tuning-pro.html 一.概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘I ...

  8. hadoop学习WordCount+Block+Split+Shuffle+Map+Reduce技术详解

    转自:http://blog.csdn.net/yczws1/article/details/21899007 纯干货:通过WourdCount程序示例:详细讲解MapReduce之Block+Spl ...

  9. Spark学习之路 (十)SparkCore的调优之Shuffle调优[转]

    概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优 ...

  10. Hadoop学习笔记系列文章导航

    一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...

随机推荐

  1. Hdu 3966-Aragorn's Story LCT,动态树

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3966 Aragorn's Story Time Limit: 10000/3000 MS (Java/Ot ...

  2. hdu 4293 dp求最大权值不重合区间

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4293 #include<cstdio> #include<cstring> # ...

  3. 关于字符编码精简介绍 ANSI GB2312 UTF8 UNICODE

  4. nyoj 239 月老的难题【匈牙利算法+邻接表】

    月老的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘. 现在,由于一些原因,部分男孩与女孩可能结成幸福 ...

  5. AIX操作oracle

    oracle:出现下述错误,无法连接用户. ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist ...

  6. FZU 2104 (13.11.28)

    Problem 2104 Floor problem Accept: 376    Submit: 433 Time Limit: 1000 mSec    Memory Limit : 32768 ...

  7. 【Android - V】之DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...

  8. C程序中唯一序列号的生成

    在实际的软件开发项目中.常常会涉及唯一序列号的生成.本文以一个实际的程序为例,介绍了唯一序列号的生成过程. 本文生成的序列号的样式为:MMDDHHMINSS_XXXXXX. 程序例如以下: /**** ...

  9. agentzh --春哥--调试专家

    https://github.com/agentzh/perl-systemtap-toolkit https://github.com/openresty http://openresty.org/ ...

  10. Android自定义Notification并没有那么简单

    背景 最近需要实现一个自定义Notification的功能.网上找了找代码,解决方案就是通过RemoteViews来实现.但是在实现过程中遇到不少问题,网上也没有很好的文章描述这些问题,所以在这里做个 ...