zoukankan      html  css  js  c++  java
  • D3.js的基础部分之数组的处理 集合(Set)(v3版本)

    数组的处理 之 集合(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()             
    //返回该集合的大小。
     
    通过代码来实践一下上述函数的使用方法:
     1 //定义一个源数组
     2         var dataList = ["tiger", "dragon", "snake", "horse", "sheep"];
     3         //构建一个集合,将其保存在变量set中
     4         var set = d3.set(dataList);
     5 
     6 
     7         console.log(set.has("tiger"))         //返回值true
     8         console.log(set.add("monkey"))        //返回值monkey
     9 
    10         console.log(set.values())             //返回值["tiger", "dragon", "snake", "horse", "sheep", "monkey"]
    11 
    12         //集合中的每一个元素都将调用function函数
    13         set.forEach(function(value){
    14             console.log(value)                //返回值分别打印出tiger、dragon、snake、horse、sheep、monkey
    15         })
    16 
    17         console.log(set.empty())              //返回值false
    18         console.log(set.size())               //返回值6
    有一点要注意,集合中不允许出现相同的元素,如果有相同的元素,则只会保留其中一项。这一点主要表现在构造集合和添加元素时:
     
    1 var dataList = ["tiger","tiger", "dragon", "snake", "horse", "sheep"];
    2         var set = d3.set(dataList);
    3         set.add("dragon");
    4 
    5         console.log(set.values())       //返回值 ["tiger", "dragon", "snake", "horse", "sheep"]
     
    由于数组dataList中的tiger元素有两个,因此结果只能保留一个,在使用add()添加元素时,dragon已经在集合中存在了,因此也没有添加。
     
     
     集合与映射相比,集合比较简单,没有键的概念。
     
     
  • 相关阅读:
    Android获取屏幕分辨率及DisplayMetrics简介(轉)
    程序员技术练级攻略
    CSDN精选iPhone开发博客
    Java中访问权限修饰符public protected 缺省默认 private的用法总结(转)
    Java中abstract class 和 interface 的解释和他们的异同点(转)
    Code Project精彩系列(转)
    java中重载与重写的区别
    HDU 1024 Max Sum Plus Plus(动态规划,给定一个数组,求其分成m个不相交子段和最大值的问题)
    Triple ACM HDU 3908 (数学题,找多少种组合)
    ACM POJ 1015 Jury Compromise(陪审团的人选,动态规划题,难)
  • 原文地址:https://www.cnblogs.com/littleSpill/p/10812779.html
Copyright © 2011-2022 走看看