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. Difference Between Primes

    Problem Description All you know Goldbach conjecture.That is to say, Every even integer greater than ...

  2. 苹果Think Different广告

    电视广告版: Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the s ...

  3. git submodule的操作

    对于有submodule的库,检出的方法是: git clone https://github.com/BelledonneCommunications/linphone-android.git -- ...

  4. hpuoj 问题 C: 善良的国王【最小生成树kurskal】

    问题 C: 善良的国王 时间限制: 1 Sec  内存限制: 128 MB提交: 112  解决: 48[提交][状态][讨论版] 题目描述 很久很久以前,有一个贫困的国家,这个国家有一个善良爱民的国 ...

  5. 提高效率 常用的几个xcode快捷键

    能用好快捷键,不仅仅可以提高工作效率,而且让你看起来更加的自信和能干,下面几个常用的快捷键,希望对你在工作中有帮助 1.首先说明一下几个标示的意思 Command  ⌘ Control      ⌃ ...

  6. eclipse的svn插件安装方式

    eclipse的插件安装一般有3种方式: 1)通过eclipse的Help/ Install New Software...中, 点击Add, 添加一个在线更新地址,如:http://subclips ...

  7. ELK初学搭建(kibana)

    ELK初学搭建(kibana) elasticsearch logstash kibana ELK初学搭建 kibana 1.环境准备 centos6.8_64 mini IP:192.168.10. ...

  8. 翻译Android USB HOST API

    翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者 ...

  9. 遍历datatable的几种方法【转载】

    遍历datatable的方法2009-- :02方法一: DataTable dt = dataSet.Tables[]; ; i < dt.Rows.Count ; i++) { string ...

  10. Mysql新建用户和数据库并授权

    测试环境:Centos 6.3和Mysql 5.3 一.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into my ...