2.22 sample

2.22.1 语法:

_.sample(list, [n])

2.22.2 说明:

从list中产生一个随机样本。传参n后返回n个随机元素,各元素不重复。

2.22.3 代码示例:

示例一:从list中随机产生一个样本

var sample;

//数组
sample = _.sample([1, 2, 3, 4, 5]);
console.log(sample); //may be => Number 3 //对象
sample = _.sample({a:1, b:2, c:3, d:4, e: 5});
console.log(sample); //may be => Number 2 //字符串
sample = _.sample('12345');
console.log(sample); //may be => String 5 //arguments
(function(){
sample = _.sample(arguments);
console.log(sample); //may be => Number 1
}(1, 2, 3, 4, 5));

示例二:传递参数n

var sample;

//数组
sample = _.sample([1, 2, 3, 4, 5], 3);
console.log(sample); //may be => [4, 2, 3] //对象
sample = _.sample({a:1, b:2, c:3, d:4, e: 5}, 3);
console.log(sample); //may be => [1, 2, 4] //字符串
sample = _.sample('12345', 3);
console.log(sample); //may be => ["5", "1", "4"] //arguments
(function(){
sample = _.sample(arguments, 3);
console.log(sample); //may be => [3, 2, 4]
}(1, 2, 3, 4, 5));

传递n后,返回的是数组。

2.22.3 传递参数n的变化

var list = [1, 2, 3, 4, 5];
var sample; sample = _.sample(list, -1);
console.log(sample); //=> [] sample = _.sample(list, 0);
console.log(sample); //=> [] //传1返回的也是数组
sample = _.sample(list, 1);
console.log(sample); //may be => [1] sample = _.sample(list, 3);
console.log(sample); //may be => [1, 2, 4] sample = _.sample(list, 5);
console.log(sample); //may be => [5, 3, 1, 2, 4] sample = _.sample(list, 10);
console.log(sample); //may be => [2, 4, 5, 1, 3]
  • 传递了参数n返回的都是数组
  • n <= 0 返回空数组
  • n > 0 && n < list.length 返回的数组长度为n
  • n >= list.length返回的数组长度为list.length

2.22.4 产生的一个样本内,各元素不会重复

var list = [1, 2, 3, 4, 5];
var sample; _(3).times(function(){
sample = _.sample(list, 5);
console.log(sample);
});

2.22.5 非集合情况都返回undefined

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

2.22.6 简单的random,元素的值可能重复

var list = ['a', 'b', 'c', 'd'];
var sample = []; for(var i = 0; i < list.length; i++) {
var n = Math.floor(Math.random() * list.length);
sample.push(list[n]);
}
console.log(sample); //maybe => ["c", "d", "c", "a"]

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

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

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

  2. ArcGIS AddIN Sample学习笔记

    1.AddInEditorExtension 功能描述:编辑器扩展,实现在编辑要素,对编辑事件的监听,及对新创建的要素的处理 核心代码: void Events_OnStartEditing() { ...

  3. MEF(Managed Extensibility Framework)依赖注入学习

    MSDN官方资料,并且微软还提供了SimpleCalculator sample学习样例 http://msdn.microsoft.com/en-us/library/dd460648(v=vs.1 ...

  4. Jupyter Notebook 的安装使用以及 tree 路径变更

    由于最近开始学习 Python,进而接触到一个十分强大的交互式编辑器 — Jupyter Notebook,用起来也非常顺手,于是记录一下相关的使用过程. 一.安装 Python: ①首先前往 pyt ...

  5. box2dweb 学习笔记--sample讲解

    前言: 之前博文"台球游戏的核心算法和AI(1)" 中, 提到过想用HTML5+Box2d来编写实现一个台球游戏. 以此来对比感慨一下游戏物理引擎的巨大威力. 做为H5+box2d ...

  6. Direct3D学习笔记 - 浅析HDR Lighting Sample

    一.HDR简介 HDR(High Dynamic Range,高动态范围)是一种图像后处理技术,是一种表达超过了显示器所能表现的亮度范围的图像映射技术.高动态范围技术能够很好地再现现实生活中丰富的亮度 ...

  7. 从几个sample来学习JAVA堆、方法区、JAVA栈和本地方法栈

    最近在看<深入理解Java虚拟机>,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构: 感觉有 ...

  8. 从sample来学习Java堆(转)

    1)Java堆 所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示: public class HeapOOM { static class OOMOb ...

  9. 深度学习实践-强化学习-bird游戏 1.np.stack(表示进行拼接操作) 2.cv2.resize(进行图像的压缩操作) 3.cv2.cvtColor(进行图片颜色的转换) 4.cv2.threshold(进行图片的二值化操作) 5.random.sample(样本的随机抽取)

    1. np.stack((x_t, x_t, x_t, x_t), axis=2)  将图片进行串接的操作,使得图片的维度为[80, 80, 4] 参数说明: (x_t, x_t, x_t, x_t) ...

  10. 深度学习原理与框架-Tensorflow卷积神经网络-cifar10图片分类(代码) 1.tf.nn.lrn(局部响应归一化操作) 2.random.sample(在列表中随机选值) 3.tf.one_hot(对标签进行one_hot编码)

    1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数 ...

随机推荐

  1. 265行JavaScript代码的第一人称3D H5游戏Demo【个人总结1】

    本文目的是分解前面的代码.其实,它得逻辑很清楚,只是对于我这种只是用过 Canvas 画线(用过 Fabric.js Canvas库)的人来说,这个还是很复杂的.我研究这个背景天空也是搞了一天,下面就 ...

  2. 简单登陆UI设计

    简单UI设计 作品效果图: 关键技术:      用到了本地化控件:SharedPreferences,简单的说就是本地配置. 四大组件:Intent 基本思路请看代码: Java代码: import ...

  3. EXCEL 如何将多个工作表或工作簿合并到一个工作表

    在使用Excel 时,我们经常需要将多个工作表或工作簿合并到一个工作表中,这样我们就能快速地对数据进行分析和统计.对于一般用户而言,除了复制每个工作表后再粘贴,没有其他什么方法了.如果只是合并少数几个 ...

  4. SSD -----TLC MLC SLC

    SLC缓存什么鬼?TLC评测造假要持续多久 2016.5.5来源:中关村在线 TLC的廉价真的将SSD引入了全面普及的高速公路上,谈到TLC我们更多的理解是TLC的P/E(Program/Erase ...

  5. Linux命令之dot - 绘制DOT语言脚本描述的图形

    本文链接:http://codingstandards.iteye.com/blog/840055 用途说明 Graphviz (Graph Visualization Software的缩写)是一个 ...

  6. iOS-UIScrollView的delaysContentTouches与canCencelContentTouches属性

    UIScrollView工作原理 在滚动过程当中,其实是在修改原点坐标 UIScrollView有一个BOOL类型的tracking属性,用来返回用户是否已经触及内容并打算开始滚动,我们从这个属性开始 ...

  7. UITableView的简单应用介绍

    创建一个tableView视图,然后把这个视图界面添加到主界面上. _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, [ ...

  8. Lamp环境部署指南

    1.安装apache 1)安装httpd: yum install httpd 2)启动httpd服务 service httpd start 2.安装mysql 1)安装mysql yum inst ...

  9. linux设置语言编码

    前段时间在服务器上安装了centos6.2版本,当初安装时语言选择英文.这本来也没有什么问题,直到前一段时间.我的同事发现部署的web项目中出现乱码情况.但中文作为参数进行传递到下一个页面的时候就乱码 ...

  10. HTML特效代码大全

    1)贴图:<img src="图片地址">2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a>1)贴 ...