JavaScript 数组学习总结
类数组转数组
ES5解决方案
let arr = Array.prototype.slice.call(arrlike)
ES6解决方案
let arr = Array.from(arrlike) // 使用Array.from
let arr = [...arrlike] // 使用拓展运算符
对象转数组
首先,我们来看两个方法 Object.keys() 、Object.values()
Object.keys(obj) 返回的是一个由obj对象的键名 组成的数组,obj可以是数组
Object.values(obj) 返回的是一个由obj对象的值 组成的数组
这两个方法有一些妙用,看下面代码:
//判断对象是否为空
const isEmpty = (obj) => Object.keys(obj).length !== //字符串转为数组
let arr = Object.values('abc') //arr = ['a','b','c']
对象的遍历
const me = {
firstName: 'dell',
lastName: 'lee',
}
let arrme = [ ]
// 命令式风格
for (const [key, value] of Object.entries(me)) {
arrme.push(`${value}`)
}
//函数式
Object.entries(me).forEach(([key, value]) => console.log(`${key}: ${value}`))
字符串转数组方法总结
console.log(Array.from('abcd'))
console.log([...'abcd'])
console.log('abcd'.split('')) //推荐使用,兼容性好
构建重复值得数组用 fill()
let arr = new Array().fill() //[6,6,6,6,6,6]
数组的方法总结
1 插入删除类
push/pop 数组末尾添加/删除
unshift/shift 数组开头添加/删除
splice 可删除,可插入
2 截取连续子集
slice(start,end)
3 查找元素类
arr.indexOf() indexOf() 方法可返回数组中某个指定的元素(第一个)位置,没找到返回-1
arr.lastIndexOf() lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找,没找到返回-1
includes() 用来判断一个数组是否包含一个指定的值 如果包含则返回 true arr.includes(item)
find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。
findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。
4 拼接
arr.join('+') 拼接成字符串
arr1.concat(arr2) 拼接数组
5 判断是否为数组
arr.isArray()
6 排序类
sort() 排序
reverse() 翻转数组
7 集合变换类
forEach 无返回值,常用于存粹的遍历,大多数情况可以替代 for 循环使用 不能变量对象,可以使用for in
filter 返回原数组的子集,不改变原数组,用于对原数组的进行过滤筛选
let newArr = [,,,,,,].filter((item,index,arr) => {
return item % ==
})
map 返回的和原数组长度相同的映射数组,用于映射到另外一个数组
let newArray = [,,,].map((item,index,arr) => {
return item +
})
reduce/reduceRight 返回一个和初始值类型相同的值,中文叫归并操作,用于遍历数组每个元素收集需要的数据返回一个值
const scores = [
{
subject: 'math',
score:
},
{
subject: 'chinese',
score:
},
{
subject: 'english',
score:
}
];
const dis = {
math: 0.5,
chinese: 0.3,
english: 0.2
}
const sum = scores.reduce((pre,item) => {
return pre + item.score * dis[item.subject]
},)
JavaScript 数组学习总结的更多相关文章
- javascript 数组学习(一)
今天学习了一下<javascript权威指南(第6版)>的第七章:数组 一.数组的创建: 数组的创建有3种方法: var colors = new Array(3);//可以省略new v ...
- Javascript数组学习
记录下学习数组的过程 1.创建数组 var ary1 = new Array();//空数组 var ary2= [] ;//字面量 2.数组检测 //方法一 if(array instanceof ...
- 【学习笔记03】Javascript数组学习
数组定义的方法一: var Myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一维长度2 Myarr[i]=new Array(); //再声 ...
- JavaScript数组学习总结
数组 数组 1.数组:数组是一组数据(数据类型不限,任意)的有序集合===>我们写代码,一般一个数组只放一种数据类型的数据 2.我们写代码,一般一个数组只放一种类型的数据 3.注意: 大多数 ...
- javascript数组学习1
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- JavaScript数组(二)实例
一.Js 数组示例常用操作. $(function () { Javascript数组学习 var nums = new Array([10], [5],[ 8], [2], [3]); 数组反转 n ...
- RX学习笔记:JavaScript数组操作
RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...
- [前端JS学习笔记]JavaScript 数组
一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...
- JavaScript基础学习(三)—数组
一.数组简介 JavaScript数组的每一项都可以保存任何类型的数据,也就是说数组的第一个位置保存字符串,第二个位置可以保存数值,第三个位置可以保存对象,而且数组的大小是可以动态调整的,即可 ...
随机推荐
- API 接口开发规范
整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...
- Python 中 -m 的典型用法、原理解析与发展演变
在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...
- TCP/IP协议指南
分组: packet 通常用来表示任何类型的报文. 数据报: datagram 表示网络分层技术,它也经常用于表示在OSI参考模型较高层上的发送报文. 帧: frame 特别常见用于数据链路层上的报文 ...
- Java学习总结之方法重载和方法重写
在学习方法的阶段我学习了方法重载(Overload),而在学习面向对象三大特性之继承的时候我又学习了方法重写(Override). 概念: 方法重载:在同一个类中,允许存在一个以上的同名方法,只要 ...
- svg路径蒙版动画
svg路径蒙版动画,是比较实用的一种动画效果,能够绘制如下图所示的动画. 接下来细说这样的动画是如何做成的: 1.准备工作 2.SVG路径动画 3.SVG路径蒙版动画 4.复杂图形的编辑技巧 1.准备 ...
- 控制UI界面
在android中,一共有四种方式. 第一种:使用XML布局文件控制UI界面 关键步骤有2个: 1.在Android应用的res/layout目录下编写,创建一个项目,eclipse会自动生成一个xm ...
- Python面向对象 | 类的成员
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分. 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel ...
- CentOS7.6手动编译httpd-2.4.25
手动编译httpd-2.4.25 系统:CentOS7.1810 httpd:2.4.25 编译时报错解决技巧:报什么错,就装这个错误的devel,比如报http2错误,就yum search htt ...
- macOS 使用Miniconda配置本地数据运算环境
目前,做数据分析工作,基本人手Numpy,pandas,scikit-learn.而这些计算程序包都是基于python平台的,所以搞数据的都得先装个python环境...(当然,你用R或Julia请忽 ...
- 2019年PHP面试题附答案(实战经验)
出于一些原因近期做了一次工作变动,在职交接近一个半月时间大概面试了十五家公司,并且得到了自己比较满意的offer,最后基本上无缝衔接了新工作.总体来说,虽然准备的很充分,但面试期间还是暴露了许多问题, ...