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学习笔记之数组(二)的更多相关文章

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

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

  2. JavaScript学习笔记(十二)——箭头函数(Arrow Function)

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

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

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

  4. JavaScript学习笔记之数组(一)

    数组基础篇 一.数组概述 1. 数组的语法 数组(array)是按次序排列的一组值.每个值的位置都有编号(从0开始). var arr=[1,2,3] //arr[0]=1 任何类型的数据,都可以放入 ...

  5. JavaScript学习笔记——4.数组

    数组(Array) 数组也是一个对象   数组中保存的内容我们称为元素 数组的操作 - 创建数组 - var arr = new Array();   - var arr = []; 例如:var m ...

  6. JavaScript学习笔记:数组的indexOf()和lastindexOf()方法

    https://www.w3cplus.com/javascript/array-part-6.html

  7. Javascript学习笔记三——操作DOM(二)

    Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...

  8. Javascript学习笔记二——操作DOM

    Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...

  9. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

随机推荐

  1. Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结一个恢复的问题,11.2.0.3版本,非归档,大概是rm掉current ...

  2. MSYS2 简单配置

    Windows 下用 SWIG 打包 C/C++ 为 Python 接口的时候,需要用到 32-bit/64-bit 编译器,MSYS2 给出了个一揽子方案,安装见其官方网站. 本文主要记录 MSYS ...

  3. 学习! ! ! Study! ! !

    我们是年轻人,钱不重要,前途才重要,干嘛着急挣钱啊.  学习!!!  study!!!

  4. [Micropython]TPYBoard v102 DIY照相机

    摄像头(CAMERA或WEBCAM)又称为电脑相机.电脑眼.电子眼等,是一种视频输入设备,被广泛的运用于视频会议,安防系统 .图像采集系统. 环境监控 .工业现场过程控制 等方面.本实验用TPYBoa ...

  5. 修改tomcat JVM 大小

    参考:https://blog.csdn.net/mynamepg/article/details/80591348 1.Xms表示初始分配给jvm的内存大小,-Xmx表示最大可分配给jvm的内存大小 ...

  6. python调用数据返回字典dict数据的现象2

    python调用数据返回字典dict数据的现象2 思考: 话题1连接:https://www.cnblogs.com/zwgbk/p/10248479.html在打印和添加时候加上内存地址id(),可 ...

  7. 使用keras的LSTM进行预测----实战练习

    代码 import numpy as np from keras.models import Sequential from keras.layers import Dense from keras. ...

  8. 【原创】从策略模式闲扯到lambda表达式

    引言 策略模式,讲这个模式的文章很多,但都缺乏一个循序渐进的过程.讲lambda表达式的文章也很多,但基本都是堆砌一堆的概念,很少带有自己的见解.博主一时兴起,想写一篇这二者的文章.需要说明的是,在看 ...

  9. 使用hibernate造成的MySql 8小时问题解决方案

    本文借鉴了网上的很多博客,在此不再声明 总结 1.增加 MySQL 的 wait_timeout 属性的值(不推荐) mysql5之前的版本,可以在jdbc连接的url中加入:autoReconnec ...

  10. 朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车

    朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车 [下载本文PDF进行阅读] 这里所说的三架马车是指微服务.消息队列和定时任务.如下图所示,这里是一个三驾马车共同驱动的一个立体的互联网项目的架构 ...