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)//11console.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.cnblogs.com/qfstudy/p/8981152.html

JavaScript学习笔记之数组(二)相关推荐

  1. JavaScript学习笔记:数组reduce()和reduceRight()方法

    很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...

  2. JavaScript学习笔记:数组

    文章目录 一.一维数组 1.创建数组 (1)创建空数组,逐个赋值 (2)创建数组同时赋值 (3)创建字面量数组 2.添加数组元素 3.数组长度属性length 4.遍历数组 (1)传统for循环 (2 ...

  3. JavaScript学习笔记之 数组方法一 堆栈 和队列

    数组的方法 以及 堆栈的操作的方法 JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操 ...

  4. JavaScript学习随记——数组二

    数组indexOf(arg) 和 lastIndexOf(arg)方法使用 <script type="text/javascript" charset="utf- ...

  5. JavaScript学习笔记(六)--数组

    数组初始化 我们都知道,数组是用于保存多个值的集合,在数组中,值被称为元素,值可以是任意的数据类型.在Javascript中,创建数组通常有两种方式:字面量和构造函数. 字面量 数组的元素可以是任意的 ...

  6. JavaScript 学习笔记(二)

    JavaScript 学习笔记(二) 文章目录 JavaScript 学习笔记(二) 一 JSON 1. JSON 对象 什么是JSON对象 JSON对象与Javascript对象的区别 在JavaS ...

  7. JavaScript 学习笔记(第三天)

    JavaScript 学习笔记(第三天) 一.数组 1.1.数组的基础 1.2.数据类型分类 1.3.创建数组 1.3.1.字面量创建一个数组 1.3.2.内置构造函数创建数组 1.4.数组的基本操作 ...

  8. JavaScript学习笔记(四)(DOM)

    JavaScript学习笔记(四) DOM 一.DOM概述 二.元素对象 2.1 获取方式 (1).通过ID获取一个元素对象,如果没有返回null (2).通过`标签名`获取一组元素对象,,如果没有返 ...

  9. JavaScript学习笔记——函数 Part4:向函数传递函数、从函数返回函数(函数是一等公民)

    要点 函数是值,这个值就是函数引用 函数是一等公民:函数引用是一等值 可将函数引用赋给变量.含在数据结构(如对象)中.传递给其他函数或从其他函数返回 函数是一等公民 不要再认为函数是特殊的,有别于Ja ...

最新文章

  1. C# 获取图片的EXIF 信息
  2. python面向对象总结_python面向对象总结
  3. android VectorDrawable使用笔记(三)
  4. 转:MFC 的程序中GetAt()的理解
  5. 明汯投资掌门人裘慧明:今年特别难,未来两三年也难
  6. Vim编辑器学习笔记
  7. 看完这篇“史密斯圆图”告别懵逼射频!
  8. 服务器系统安装蓝牙驱动,win10蓝牙驱动怎么安装?-win10蓝牙驱动的安装教程 - 河东软件园...
  9. mysql 纯真ip 导出dat_纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)
  10. 智能消防栓监控系统解决方案
  11. boost LNK2005 重定义错误
  12. 荐书 | 9本心理治疗书籍推荐
  13. Jruby On Rails 的安装及部署实践
  14. Java实现 LeetCode 237 删除链表中的节点
  15. python更改图片中物体的颜色_Python实现去除图片中指定颜色的像素功能示例
  16. python3.6怎么保存_python 保存数据单文件_python3.6 单文件爬虫 断点续存 普通版 文件续存方式...
  17. 复杂的1秒 图解Google搜索技术
  18. win10开机任务栏转圈假死怎么办
  19. dz.27z.co index.php,dc vip中心 专业版v2.2.1 discuz插件 dzvip插件 vip会员插件 积分充值插件...
  20. .NET 对象序列化学习笔记(—)

热门文章

  1. MaxCompute 2.0—从ODPS到MaxCompute
  2. returnFunc.js
  3. Resource 资源 ---Day09 2014-06-13
  4. SystemCenterOperationsManager2012 SP1系列文章
  5. 如果我要....(生活版)
  6. 清华大学郑莉c++答疑
  7. cv and cover letter part 1
  8. python script 95% interval
  9. 大佬的引用。。。。太猛了啊
  10. 如何管理和组织一个智库?参考西交利物浦大学智库治理结构和我的偶像们的成长路径!