数组的处理 之 集合(set)
集合(Set)是数学中常用的概念,表示具有某种特定性质的事物的总体。集合里的项叫做元素。集合的相关方法有:
 
d3.set([array])       
//使用数组来构建集合,如果数组里有重复的元素,则只添加其中一项。
 
set.has(value)       
//如果集合中有指定元素,则返回true,如果没有返回false。
 
set.add(value)      
//如果该集合中没有指定元素,则将其添加到集合中,并返回该元素,如果有,则不添加
 
set.remove(value)    
//如果该集合中有指定元素,则将其删除并返回true。否则返回false。
 
set.values()        
//以数组的形式返回该集合中所有的元素。
 
set.forEach(function)    
//对每一个元素都调用function函数,函数里传入一个参数,即该元素的值。
 
set.empty()          
//如果该集合为空,则返回true,否则返回false
 
set.size()             
//返回该集合的大小。
 
通过代码来实践一下上述函数的使用方法:
 //定义一个源数组
var dataList = ["tiger", "dragon", "snake", "horse", "sheep"];
//构建一个集合,将其保存在变量set中
var set = d3.set(dataList); console.log(set.has("tiger")) //返回值true
console.log(set.add("monkey")) //返回值monkey console.log(set.values()) //返回值["tiger", "dragon", "snake", "horse", "sheep", "monkey"] //集合中的每一个元素都将调用function函数
set.forEach(function(value){
console.log(value) //返回值分别打印出tiger、dragon、snake、horse、sheep、monkey
}) console.log(set.empty()) //返回值false
console.log(set.size()) //返回值6
有一点要注意,集合中不允许出现相同的元素,如果有相同的元素,则只会保留其中一项。这一点主要表现在构造集合和添加元素时:
 
 var dataList = ["tiger","tiger", "dragon", "snake", "horse", "sheep"];
var set = d3.set(dataList);
set.add("dragon"); console.log(set.values()) //返回值 ["tiger", "dragon", "snake", "horse", "sheep"]
 
由于数组dataList中的tiger元素有两个,因此结果只能保留一个,在使用add()添加元素时,dragon已经在集合中存在了,因此也没有添加。
 
 
 集合与映射相比,集合比较简单,没有键的概念。
 
 

D3.js的基础部分之数组的处理 集合(Set)(v3版本)的更多相关文章

  1. D3.js的基础部分之数组的处理 数组的排序和求值(v3版本)

    操作数组   D3提供了将数组洗牌.合并等操作,使用起来是很方便的.   d3.shuffle(array,[,lo[,ji]]) : //随机排列数组. d3.merge(arrays) :   / ...

  2. D3.js的基础部分之数组的处理 映射(v3版本)

    映射(Map)   映射(Map)是十分常见的一种数据结构,由一系列键(key)和值(value)组成的.每个key对应一个value,根据key可以获取和设定value,也可以根据key来查询val ...

  3. D3.js的基础部分之选择集的处理 过滤器、选择集的顺序、each()和call()的应用(v3版本)

    选择集的处理 : 过滤器 有时候需要根据绑定数据对某选择集的元素进行过滤,例如某公司,只对id大于100的员工进行奖励.某学校只选拔身高超过170cm的学生等.类似这样的问题,需要根据条件获取选择集的 ...

  4. D3.js的基础部分之选择集的处理 enter和exit的处理方法 (v3版本)

    上一节给大家讲述额绑定数据的原理.当数组的长度与元素的数量不一致时,有enter部分和exit部分,前者表示存在多余的数据,后者表示存在多余的元素.本节将给大家介绍如何处理这些多余的东西,最后会给大家 ...

  5. 【代码笔记】Java常识性基础补充(二)——数组、ArrayList集合、ASCII编码、 eclipse基础操作、eclipse调试、eclipse项目导入、eclipse快捷键

    1.0 如何定义数组以及访问数组中的元素,如下所示.ArrayDemo01.java public class ArrayDemo01 { public static void main(String ...

  6. D3.js(v3)+react框架 基础部分之数据绑定及其工作过程与绑定顺序

    数据绑定: 将数据绑定到Dom上,是D3最大的特色.d3.select和d3.selectAll返回的元素的选择集.选择集上是没有数据的. 数据绑定就是使被选择元素里“含有”数据. 相关函数有两个: ...

  7. D3.js学习笔记(六)——SVG基础图形和D3.js

    目标 在这一章,我们将会重温SVG图形,学习如何使用D3.js来创建这些图形. 这里会包括前面例子中的SVG基础图形以及如何使用D3.js设置图形的属性. 使用D3.js画一个SVG 的 圆 circ ...

  8. 精通D3.js学习笔记(1)基础的函数

    买了本吕大师的d3可视化.最近来学习一下,做个笔记.   1.选择元素  select(第一元素) 和selectAll(全部的元素)      类似css的选择器.也可以是dom选中的. var i ...

  9. D3.js (v3)+react框架 基础部分之认识选择集和如何绘制一个矢量图

    首先需要下载安装d3.js  :  yarn add d3 然后在组建中引入 :  import * as d3 from 'd3' 然后定义一个方法,在componentDidMount()这个钩子 ...

随机推荐

  1. 假如Kafka集群中一个broker宕机无法恢复,应该如何处理?

    假如Kafka集群中一个broker宕机无法恢复, 应该如何处理? 今天面试时遇到这个问题, 网上资料说添加新的broker, 是不会自动同步旧数据的. 笨办法 环境介绍 三个broker的集群, z ...

  2. Openstack组件部署 — Networking service_安装并配置Controller Node

    目录 目录 前文列表 前提条件 网络环境 完成下面的步骤以创建数据库 创建service credentials服务凭证 创建Neutron的API Endpoints 配置自服务网络 安装网络组件 ...

  3. 2.2 webpack

    webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安装 webpack 使用 命令行调用 配置文件 webpack 配置参数 entry ...

  4. 1089 Insert or Merge (25 分)

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  5. JQuery中内容操作函数、validation表单校验

    JQuery:内容体拼接(可以直接拼接元素节点和内容节点) JQuery实现: 方案1:A.append(B); == B.appendTo(A);A的后面拼接B 方案2: A.prepend(B); ...

  6. win7+ubuntu双系统安装

    XP+ubuntu双系统可參考 xp硬盘上安装ubuntu12.04双系统 1.XP安全不再,最终将吾等磨机的人逼上梁山,是时候做一个win7+ubuntu的双系统了. 废话少说,直接进入主题,先腾出 ...

  7. ABP 3.7版本迁移数据库报错未能加载文件或程序集“Castle.Core, Version=4.0.0.0”

    ABP 3.7 3.8版本升级后迁移数据库,报错未能加载文件或程序集“Castle.Core, Version=4.0.0.0”,System.ComponentModel.Annotations也可 ...

  8. Vue番外篇-路由进阶(一)

    Vue的router默认是 export default new Router({ mode: 'history', routes: [ { path: '/', name: 'HelloWorld' ...

  9. Ubuntu 奇怪踩坑记录

    仓库ppa问题 当你使用 apt-get update 时候,提示 仓库 "http://ppa.launchpad.net/hzwhuang/ss-qt5/ubuntu bionic Re ...

  10. 笔记33 Spring MVC的高级技术——Spring MVC配置的替代方案

    一.自定义DispatcherServlet配置  AbstractAnnotationConfigDispatcherServletInitializer所完成 的事情其实比看上去要多.在Spitt ...