资讯专栏INFORMATION COLUMN

JavaScript学习笔记之数组(三)

YPHP / 3360人阅读

摘要:学习笔记之数组二输出什么为什么有三个参数数组元素,元素索引,数组本身有两个参数元素本身以及进制语法参数可选。表示要解析的数字的基数。如果该参数小于或者大于,则将返回。当参数的值为或没有设置该参数时,会根据来判断数字的基数。

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
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)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107747.html

相关文章

  • JavaScript学习笔记数组(一)

    摘要:数组基础篇数组的语法数组是按次序排列的一组值。属性数组的属性,返回数组的成员数量。通过设置的值改变数组的长度将属性设为可以清空数组。类似数组的对象并不是数组,因为它们不具备数组特有的方法。 数组基础篇 1.数组的语法 数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始)。var arr=[1,2,3] //arr[0]=1任何类型的数据,都可以放入数组。 var ...

    Yangder 评论0 收藏0
  • JavaScript学习笔记数组(二)

    摘要:方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。,这两个方法,返回一个布尔值,表示判断数组成员是否符合某种条件。该函数接受三个参数当前成员当前位置和整个数组,然后返回一个布尔值。 数组基础篇二 数组对象 1.声明数组的方法 Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组。 var arr =new A...

    YPHP 评论0 收藏0
  • JavaScript MVC 学习笔记)类的使用(中)

    摘要:实际上,可以将其理解为某种形式的继承。如果上下文是,则使用全局对象代替。例如的第个参数是上下文,后续是实际传入的参数序列中允许更换上下文是为了共享状态,尤其是在事件回调中。 公开记录学习JS MVC,不知道能坚持多久= =。以《基于MVC的JavaScript web富应用开发》为主要学习资料。接上一篇类的学习,发现实在是看晕了,有些例子是能看懂在干嘛,但是不知道为什么这样做,有的甚至...

    DandJ 评论0 收藏0
  • SegmentFault 技术周刊 Vol.40 - 2018,来学习一门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    caspar 评论0 收藏0
  • SegmentFault 技术周刊 Vol.40 - 2018,来学习一门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    nihao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<