JS的一些方法

57 阅读4分钟

JS的一些方法

1.Array.isArray(判断是否使数组)


var colors = new Array();
if(Array.isArray(colors)){
    // 判断colors 是否是一个数组 是的话返回true
    colors[0] = 'red';
    colors[1] = 'yellow';
    colors[2] = 'blue';
    console.log(colors);   
}else{
    console.log("不是一个数组")
}


2.toString 转成字符串

    var colors = new Array();
    colors[0] = 'red';
    colors[1] = 'yellow';
    colors[2] = 'blue';
    var a = colors.toString();
if(Array.isArray(a)){
    // 判断经过转换的colors 是否是一个数组 是的话返回true
    
    console.log("是数组");   
}else{
    console.log("转成了字符串")
    console.log(a); 
}

3.join 分割字符串

    //在上面我们给colors转成字符串后发现每个元素之间是用,逗号隔开的
    //其实就等同于
    var colors = ['red','blue','green'];
    var a = colors.join(',');
    console.log(a);
    
    //当然我们也可以用其他的符号用来分隔开
    var b = colors.join('|');
    console.log(b);
    //那我们不分隔开的话就是
    var c = colors.join('');
    console.log(c);

4.栈方法 (lifo last -in - first - out)

简单来说就是后进先出 push pop

push

    var colors = ['red','blue','green'];
    colors.push('purple');
    console.log(colors);
    //往数组的最后一项添加内容

image.png

pop

    var colors = ['red','blue','green'];
    colors.push('purple');
    console.log(colors);
    colors.pop();
    console.log(colors);
    //pop 删除末尾最后一项
    

image.png

5.队列 (fifo) 先进先出

就是 shift unshift

unshift

        var colors = ['red','blue','green'];
    colors.unshift('orange');
    console.log(colors);
    colors.shift()
    

image.png

shift

    var colors = ['red','blue','green'];
    colors.unshift('orange');
    console.log(colors);
    var del =  colors.shift();
    console.log(del);
    console.log(colors);

image.png

6.数组排序

  • 数组倒序 reverse
    var values = [0,5,2,6,1,8,20,15];
    //-----数组倒叙---------
    values.reverse();
    console.log(values);

image.png

  • 数组排序 sort
    var values = [0,5,2,6,1,8,20,15];
    values.sort();
    console.log(values);

image.png

我们会发现他没有完全的从小到大排序,因为sort在比较的时候会给每一项转为字符再使用字符的ASC码一位一位进行比较,例如15第一位是1,和2比较所以15比2小。

  • 升序(小到大)
//升序
    var values = [0,5,2,6,1,8,20,15];
    function compare1(a,b){
    /*
        if(a < b){
            return -1;
        }else if(a > b){
            return 1;
        }else{
            return 0;
        }
        */
         return a-b;
    }
    values.sort(function(a, b){return a-b});
    values.sort(compare1)

image.png

  • 降序(大到小)
//降序
    var values = [0,5,2,6,1,8,20,15];
    function compare2(a,b){
       /*
       if(a < b){
            return 1;
        }else if(a > b){
            return -1;
        }else{
            return 0;
        }
        */
        //简写
        return b-a;
    }
    values.sort(compare2)

image.png

7.数组的操作方法

concat()数组合并

slice()数组分割

splice()数组添加删除替换等

  • 数组合并
   var colors = ['red','yellow'];
   var newColors = colors.concat('blue');
   //也可以添加数组对象
   console.log(newColors);

image.png

  • 数组分割
   var colors = ['red','yellow'];
   var newColors = colors.concat('blue','orange','pink');
   newColors = newColors.slice(1);//从第一项开始切割
   console.log(newColors);
   newColors = newColors.slice(2,3); //只保留2-3 3不算 其他切割掉
   console.log(newColors);
   
  
  • 数组的添加删除替换 splice(start,deleteCount,items)

删除

    //删除
    var colors = ['red','yellow','blue','green','orange','pink'];
    colors.splice(0,2) //从0索引开始删除两项
    console.log(colors);

image.png

插入

     var colors = ['red','yellow','blue','green','orange','pink'];
     colors.splice(1,0,'purple','brown');//在索引为1的地方,删除0项,增加了两项 purple brown
     console.log(colors);

image.png

替换

var colors = ['red','yellow','blue','green','orange','pink'];
     colors.splice(1,2,'purple','brown');
      console.log(colors);
      //那替换就是添加几项就删除几项

image.png

7.数组的位置方法

indexOf() lastIndexOf()

    var colors = ['red','yellow','blue','green','orange']
    
    console.log(colors.indexOf('yellow')) //从前往后查
    console.log(colors.lastIndexOf('yellow'))//从后往前查都是1
    //我们还可以在后面加一个索引值来确定开始位置
    console.log(colors.indexOf('yellow'),0)//但是结果还是1 因为我们查的是匹配项的索引
    // 注意!! 查不到结果返回-1

8.数组的迭代方法

  • filter() 过滤方法
    var nums = [1,3,5,7,29,30,124,242];
    var bigTen = nums.filter(function(item,index,array){
        // item 每项 index 索引 array 数组
        console.log(item);
        console.log(index);
        console.log(array);
        return item>10
    });
    console.log(bigTen);

结果:

image.png

  • map()方法
var nums = [1,3,5,7,29,30,124,242];
    var mapResult = nums.map(function(item,index,array){
        return item-1;
    })
    console.log(mapResult)
    
    var arr = [{
        name:'张三',
        age:17
    },
    {
        name:'李四',
        age:19
    },
    {
        name:'王五',
        age:20
    },
    {
        name:'赵六',
        age:21
    }]
     var arrName = arr.map(function(item,index){
        return item.name
        })
     var arrAge = arr.map(function(item,index){
        return item.age
        })
      console.log(arrName);
      console.log(arrAge);

每一项都减1 结果:

image.png

  • forEach()数组遍历
    var nums = [1,3,5,7,29,30,124,242];
    nums.forEach(function(item,index,array){
        console.log(item);
    })

9. Date日期对象

    var time = new Date();//当前的时间
    console.log(time);
    var before = new Date('May 1,1949 15:30:00');//我们也可以自己设定时间用Date()给他转变过去
    console.log(before);
    var before1 = new Date(1949,9,1);//这里月份得-1 因为从0开始
    console.log(before1);
    var before1 = new Date(1949,9,1,10,00,00);//定义时分秒
    console.log(before1);

常用方法

  • getDate() 获取当前月份中的第几天(1-31)
  • getMonth() 获取月份(0·11)
  • getFullYear() 获取年份
  • gerDay()获取星期几 (0-6) 不用加1 0代表星期日
  • getHours()获取小时 (0-23)
  • getMinutes() 获取分钟
  • getSeconds() 获取秒
    var now = new Date()
    console.log(now.getDate())
    console.log(now.getMonth()+1)
    console.log(now.getFullYear())
    console.log(now.getDay())
    console.log(now.getHours())
    console.log(now.getMinutes())
    console.log(now.getSeconds())
    

日期格式化方法

var now = new Date()
console.log(now.toDateString()); //星期 月 日 年
console.log(now.toTimeString()); //时分秒 时区
console.log(now.toLocaleDateString()); //  年/月/日
console.log(now.toLocaleTimeString()); 时:分:秒
console.log(now.toLocaleString()); // 年/月/日 时:分:秒
console.log(now.toUTCString()); // UTC

Math数学对象

    Math.E
    Math.LN10
    Math.LN2
    Math.LOG2E
    Math.PI
    Math.SQRT2
    
    //------方法-------------
    var max = Math.max(1,5,99,214,45,67); //最大值
    console.log(max); // 214
    var min = Math.min(1,5,99,214,45,67); //最小值
    console.log(min); // 1
    
    var arr = [1,3,5,7,2,4,6];
    var max =  Math.max.apply(null,arr);
    var min =  Math.min.apply(null,arr);
    console.log(max); // 7
    console.log(min);
    
    // ceil() 向前进1  floor() 保留当前整数舍去小数
    // round() 标准的四舍五入
    var num = 19.1;
        console.log(Math.ceil(num));
        console.log(Math.floor(num));
        console.log(Math.round(num));
    //--------------------------------------
    /// 随机数 random()  0<=random<1
    console.log(Math.random());