美文网首页
JavaScript学习笔记之数组(二)

JavaScript学习笔记之数组(二)

作者: qfstudy | 来源:发表于2018-05-02 16:45 被阅读0次
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)

相关文章

  • JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为...

  • JavaScript学习笔记之数组

    JS中,数组是弱类型的,数组中可以含有不同类型的元素,数组元素甚至可以是对象或其他数组,如:var arr=[1,...

  • JavaScript学习笔记二

    JavaScript学习笔记二 个人学习笔记参考阮一峰的JavaScript教学学习笔记二是对学习笔记一的补充 J...

  • Javascript数组系列三之迭代方法2

    今天我们来继续 Javascript 数组系列的文章,上文 《Javascript数组系列二之迭代方法1》 我们说...

  • JavaScript数组去重

    JavaScript中数组的常用操作之数组去重 方法一 方法二

  • JavaScript数组

    javascript笔记(二) 数组 length 设置length会导致数组丢掉超长的数据,很危险,要小心。 以...

  • JavaScript学习笔记之数组(一)

    数组基础篇 一、数组概述 1. 数组的语法 数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始...

  • JavaScript学习笔记-数组

    1 长度length (1)要取得Array的长度,直接访问length属性: (2)注意1:直接给Array的l...

  • javascript学习笔记--数组

    数组也是一个对象,用来存储一些值(元素)。数组中的元素可以是任何数据类型 1.创建一个数组对象://构造函数方法,...

  • JavaScript ☞ day2

    JavaScript基础学习笔记之JavaScript提升 了解时间 Date Date对象的方法 Date对象间...

网友评论

      本文标题:JavaScript学习笔记之数组(二)

      本文链接:https://www.haomeiwen.com/subject/ihpcrftx.html