zoukankan      html  css  js  c++  java
  • javascript 集合 Object Array Map Set

    //Object
    
    //创建
    var obj = {}
    function obj(){}
    class obj{}
    
    
    //Array api
    Array属性和方法:
    for 条件判断: break continue return
    let arr = [function (){}, new Fun(), undefined, null, boolean, string, number, []];
    
    var x = arr.length             // arr 中元素的数量
    var y = arr.indexOf('1')   // "value" 值的索引值
    
    isArray()    Array.isArray(arr)判断对象是否为数组。
    arr.concat(arr_a, arr_b)    连接两个或更多的数组,并返回结果。注意:不影响原数组
    copyWithin()    从数组的指定位置拷贝元素到数组的另一个指定位置中。
    entries()    返回数组的可迭代对象。
    every(function (){})    检测数值元素的 每个元素 是否都符合条件。返回 布尔值
    filter()    检测数值元素,并返回符合条件所有元素的数组。返回 新数组
    fill()    使用一个固定值来填充数组。
    find()    返回符合传入测试(函数)条件的数组元素。
    findIndex()    返回符合传入测试(函数)条件的数组元素索引。
    arr.forEach(function (val, key){})    数组每个元素都执行一次回调函数。
    from()    通过给定的对象中创建一个数组。
    includes()    (es7新方法)判断一个数组是否包含一个指定的值。
    arr.indexOf(arr的value)    搜索数组中的value,并返回key,否则返回 -1
    join()    把数组的所有元素放入一个字符串。
    keys()    返回数组的可迭代对象,包含原始数组的键(key)。
    lastIndexOf()    搜索数组中的元素,并返回它最后出现的位置。
    map()    通过指定函数处理数组的每个元素,并返回处理后的数组。
    pop()    删除数组的最后一个元素并返回删除的元素。
    unshift()    向数组的开头添加一个或更多元素,并返回新的长度。
    push()    向数组的末尾添加一个或更多元素,并返回新的长度。
    reduce(fun)    将数组元素计算为一个值(从左到右)。
    reduceRight(fun)    将数组元素计算为一个值(从右到左)。
    reverse()    反转数组的value顺序。
    shift()    删除并返回数组的第一个元素。
    slice()    选取数组的的一部分,并返回一个新数组。
    array.some(function (value, key, array){let a = 0; return value > 0;})检测数组元素中是否有元素符合指定条件。如果有立即返回true
    sort(fun)    对数组的元素进行排序。
    splice(key, num)    从数组中添加或删除元素。
    toString()    把数组转换为字符串,并返回结果。
    valueOf()    返回数组对象的原始值。
    
    
    //Map
    优点: 查询很快
    var map = new Map();//声明
    map.set("key","value");//增加
    map.delete("key");//删除
    map.get("key");//获取
    map.has("key");//判断key是否存在
    
    Map test 
    let k = 0, arr = [], map = new Map();
     
    for(k = 0; k < 1000000; k++){
        arr[k] = {id:Number(k), content:'test'};
        map.set(k, {id:Number(k), content:'test'});
    }
    
    console.time('arr');
    arr[999999];
    console.timeEnd('arr');//0.022ms
    
    console.time('map');
    map.get(999999);
    console.timeEnd('map');//0.005ms
    
    
    //Set
    优点:1:可以很快的让array数组的value去重复, 2:相对于Array数组 速度更快
    注意: set数组里面没有key键, 只有value,且都是唯一的
    
    属性:
    size:返回集合所包含元素的数量
    
    方法:
    var set = new Set(); // 空Set
    set = new Set([1, 2, 3]);
    set.add(value);//添加
    set.delete(value);//删除
    set.has(value);//返回 布尔值
    set.clear(): 移除集合里所有的项
    
    //遍历
    set.keys().next().value
    set.values().next().value
    set.entries().next().value['0']
    forEach((value, value, set)=>{})
    
    Set test
    //add
    let k = 0, arr = [], set = new Set();
    for(k = 0; k < 1000000; k++){
        arr[k] = {id:Number(k), content:'test'};
        set.add({id:Number(k), content:'test'});
    }
  • 相关阅读:
    NodeJs学习历程
    MongoDb学习历程
    递归函数为什么要防止栈溢出
    *args 是可变参数,args 接收的是一个 tuple; **kw 是关键字参数,kw 接收的是一个 dict。
    list和tuple的区别
    python源码阅读
    常用的线程池有哪些?
    备份
    假设你正在爬楼梯,需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶,你有多少种不同的方法可以爬到楼顶呢?
    最后一个单词的长度
  • 原文地址:https://www.cnblogs.com/weihexinCode/p/12317591.html
Copyright © 2011-2022 走看看