javascript array js 缓存算法,数组去重、数组随机抽取、字母串转数字,数字转字符串

前言


因为平时在写代码的过程中,有些算法会经常重复写,比如数组去重、数组抽取随机值等!虽然这些不是很难的逻辑,但是每次刚开始遇到需求的时候,还是需要琢磨一些时间才能想出来,所以此文档把这些常见算法的思想记录下来,以便下次再遇到的时候不会手脚无措了!

数组去重

  • 我们这里不考虑数组上的一个自带的过滤算法,比如map、filter等方法!数组去重的关键是需要一个中间数组来存数组来帮助实现数组去重!
  • 方法一:
    var arr = [1,2,3,1,1,1,1];
    function toHeavy(array){
        //这是一个缓存对象,用来实现过滤到重复的数据
        var cache = {};
        //定义一个中间数组,用来实现当容器
        var cacheArr = [];
        for(var i = 0,len = array.length;i
  • 方法二:
    //其实思想跟第一个差不多
    var arr = [1,2,3,1,1,1,1,1,1];
    function toHeavy(array){
        var cache = [];
        for(var i = 0,len = array.length;i

最后说一句,现实中的数据肯定不会这么简单,可能会是一个稍微复杂的数据,要给这些数组去重你也不要被吓住,其实原理是一样的,只是你被迷惑了而已!

在一个数组中随机抽取一部分值

  • 这个算法的关键要使用Math.random,不说了直接上代码:
var arr = ['小明','小红','小陈','小于','小兰','小法','小p','小张','小镇','小王','傻逼','怂逼'];

    function getArr(num,array){
        //num表示要去多少个,它不能大于要取的那个数组的最大长度,如果超过了那么就等于它的长度
        var aLength = array.length;
        if(num>=aLength){
            num = aLength;
        };
        var cacheArr = [];
        //我们用一个数组保存原来的数组
        //记住千万能直接赋值,因为数组是一个引用,这样不能保持原来的数组
        var originArr = (function(){
            var arr = [];
            for(var i = 0,len = array.length;i

得到某个区间的字母组成的数组

有点事,后续代码待更新……

Date: 2017-02-17

你可能感兴趣的:(javascript array js 缓存算法,数组去重、数组随机抽取、字母串转数字,数字转字符串)