zoukankan      html  css  js  c++  java
  • JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二)

    1.['1','2','3'].map(parseInt) 输出什么,为什么?

    ['1','2','3'].map(parseInt)//[1,NaN,NaN]
    

    // map有三个参数:数组元素,元素索引,数组本身
    // parseInt有两个参数,元素本身以及进制parseInt(string,radix)
    ['1','2','3'].map(parseInt); ['1','2','3'].map(function(item,index,array){ return parseInt(item,index); });
    parseInt("1",0); => 1
    parseInt("2",1); => NaN
    parseInt("3",2); => NaN

    语法:parseInt(string , radix)

    参数:radix

    可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
    如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
    当参数 radix 的值为 0或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。如果参数string以 “0x” 或 “0X” 开头,将以 16 为基数。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

    2.对数组['2018-03-05', '2013-06-12','2019-03-12','2018-03-05','2014-02-22']去重且排序

    let arr = [...new Set(['2018-03-05', '2013-06-12','2019-03-12','2018-03-05','2014-02-22'])].sort(function(a,b){
      return a<b ? -1:1; 
    })
    //["2013-06-12", "2014-02-22", "2018-03-05", "2019-03-12"]
    

    3.数组去重

    方法一

    var arr = [1, 1, '', '', 'a', 'a', true, true, 'true', 'true', false, false, 'false', 'false']
    function uniqueArray(array) {
        var arr1 = []
        for (let i = 1; i < array.length; i++) {
            if (arr1.indexOf(array[i]) === -1) {
                arr1.push(array[i])
            }
        }
        console.log(arr1)// [1, "", "a", true, "true", false, "false"]
        return arr1
    }
    uniqueArray(arr)
    

    方法二

    var arr={'0':null,'1':null,'2':'','3':'','4':4,'5':4,length:'6'}
    function uniqueArray(array) {
        if (Array.isArray(array)) {
            array1=array
        } else if(array.length>0){
            var array1 = Array.prototype.slice.call(array)
        }else{
            console("参数必须是数组或类数组对象")
            return
        }
        var arr1 = []
        for (let i = 1; i < array1.length; i++) {
            if (arr1.indexOf(array1[i]) === -1) {
                arr1.push(array1[i])
            }
        }
       
        console.log(arr1)//[null, "", 4]
        return arr1
    }
    uniqueArray(arr)
    

    方法三

    var arr = [1, 1, ' ', ' ', 'a', 'a', undefined, undefined, null, null]
    function uniqueArrar(array) {
        if (Array.isArray(array) && array.length >1){
            var temp=[]
            array.forEach(function(value,index){
                if(temp.indexOf(value)===-1){
                    temp.push(value)
                }
            })  
        }
        return temp 
    }
    uniqueArrar(arr)//[1, " ", "a", undefined, null]
    

    3.对数组[1,2,3,4,5,'6',7,'8','a','b','z']实现乱序

    let tempArr = [1, 5, '6', 7, '8', 'a', 'b', 'z'].sort(function () {
        return Math.random() > 0.5 ? -1 : 1;
    })
    

    4.求 [1, 10, 11, -1, 8, 9]内最大值与最小值

    var arr = [1, 10, 11, -1, 8, 9]
    function MaxMinPlus(arr) {
        if( Array.isArray(arr)){
            var max=Math.max.apply(null, arr) 
            var min=Math.min.apply(null, arr)
        }
        console.log(max)//11
        console.log(min)//-1
    }
    MaxMinPlus(arr) 
    

    如果是类数组,可以使用Array.prototype.slice.call()的方法转换为数组

    5.一个数组中存放了多个人员的信息,每个人员的信息由 name 和 age 构成, 实现年龄从小到大的排序;

    var obj = [
      {age:4,name:'张三'},{age:3,name:'李四'},{age:5,name:'王五'},{age:1,name:'赵二'}
    ]
    
    var obj1 = obj.sort(function(a,b){
      return a.age - b.age;
    })
    console.log(obj1)
    

  • 相关阅读:
    选项菜单-OptionMenu
    Android Studio教程
    android 使用layer-list
    JavaScript OOP 学习总结
    Android应用中网络请求库Volley的使用
    Android应用中网络请求库Volley的介绍
    Android UI: LinearLayout中layout_weight 属性的使用规则
    Robot Framework 培训
    Begin :SWIFT 基本语法
    树莓派raspberrypi系统安装docker以及编译nginx和php镜像
  • 原文地址:https://www.cnblogs.com/qfstudy/p/8981152.html
Copyright © 2011-2022 走看看