文章目录
前言`
ECMAScript数组也是一组有序列表,但与其他语言不同的是ES数组的每一个槽位可以存储任意类型的数据。
一、创建数组
1、使用构造函数创建
const arr = new Object();
// 使用构造函数创建数组
let arr1 = new Array(); //
let arr2 = new Arrar(20); //创建一个初始length为20的数组
let arr3 = new Array('red', 'blue', 'green'); //创建包含3个元素(red,blue,green)的数组
2、使用数组字面量创建
// 使用字面量创建
let arr4 = [1,2,3]; //创建包含3个元素的数组
let arr5 = ['blue', 'red']; //创建包含2个元素的数组
let arr6 = []; //创建一个空数组
3、使用ES6Array构造函数新增的静态方法、from( )和of( )
Array.from()的第一个参数是一个类数组对象,或者有一个length属性的可索引的结构。
Map() Set() 字符串等都可以。
二、数组空位和数组索引
数组空位:
ES6新增方法普遍将数组空位当成存在的元素,只不过值为undefined。
数组索引:从0开始
//数组索引
let arr3 = new Array('red', 'blue', 'green');
console.log(arr3[0]); //red
console.log(arr3[1]); //blue
console.log(arr3[2]); //green
length属性:数组的的长度,可以通过修改length属性修改数组的长度
//length属性
let arr3 = new Array('red', 'blue', 'green');
console.log(arr3.length); //3
arr3.length = 10;
console.log(arr3[9]); //undefined
三、检测数组
判断一个变量是否为一个数组
(1)、intanceof 操作符
(2)、Arrayde静态方法 Array.isArray()
(3)、Object.prototpe.toString.call()
(4)、Object.constructor === Array
//检测数组
arr = [];
console.log(Array.isArray(arr)); //true
console.log(arr instanceof Array); //true
console.log(arr.constructor === Array); //true
console.log(Object.prototype.toString.call(arr)); //[object Array]
四、迭代器方法
(1)、Array.keys( )
(2)、Array.values( )
(3)、Array.entries( )
返回的是一个迭代器,可以通过Array.from()转为数组。
代码示例:
//迭代器方法
let arr = ['blue', 'red'];
avalues = Array.from(arr.values())
console.log(avalues); //['blue', 'red']
akeys = Array.from(arr.keys())
console.log(akeys); //[0, 1]
aentries = Array.from(arr.entries())
console.log(aentries); //[[0, 'blue'],[1, 'red']]
该处使用的url网络请求的数据。
五、数组方法
1、增
(1)、push()方法接受任意数量的参数,并将它们添加到数组末尾,返回数组的长度。
(2)、unshift()方法接受任意数量的参数,并将它们添加到数组开头,返回数组的长度。
(3)、splice()需要给方法传N个参数。开始位置、0、要插入的元素。
2、删
(1)、pop()删除最后一项,返回被删除的项。
(2)、shift()删除第一项,返回被删除的项。
(3)、splice()需要给方法传2个参数。删除第一个元素的位置,删除的元素个数。
3、查
(1)、indexOf()传入两个参数。要查找的元素,可选的起始搜索位置。 返回索引值
(2)、lastIndexOf()传入两个参数。要查找的元素,可选的起始搜索位置。从后面开始查找。返回索引值。
(3)、includes()传入两个参数。要查找的元素,可选的起始搜索位置。返回布尔值。
(4)、find((element,index,array)=> {},可选) 返回符合的第一个元素
(5)、findIndex((element,index,array)=> {},可选)返回符合的第一个元素的索引值
let arr = [2, 4, 6, 7, 8, 9];
let a = arr.find((item) => { return item % 2 !== 0 });
console.log(a); //元素值 7
let b = arr.findIndex((item) => { return item % 2 !== 0 })
console.log(b); //索引值 3
4、改
(1)、splice()接受3个参数,开始位置,1,要修改的元素。可以配合indexof()或者findIndex()使用。
5、迭代方法
ECMAScript为数组定义了5个迭代方法。每个方法接收两个参数:以每一项为参数运行的函数,以及可选的作为函数运行上下文的作用域对象(影响函数中this的值)。传给每个方法的函数接收3个参数:数组元素、元素索引和数组本身。因具体方法而异,这个函数的执行结果可能会也可能不会影响方法的返回值。数组的5个迭代方法如下。
every():对数组每一项都运行传入的函数,如果对每一项函数都返回true,则这个方法返回true。
filter():对数组每一项都运行传入的函数,函数返回true的项会组成数组之后返回。
forEach():对数组每一项都运行传入的函数,没有返回值。
map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
some():对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true。这些方法都不改变调用它们的数组。
6、归并方法
(1)、reduce(),接受一个回调和一个归并起始值,从第一项开始遍历。
回调函数(prev,cur,index,array)= > {} 四个参数分别为上一个归并之,当前项,当前项索引值,数组本身。
let arr = [2, 4, 6, 7, 8, 9];
const num1 = arr.reduce((prev, cur, index, arrat) => {
return prev + cur
}, 0)
const num2 = arr.reduce((prev, cur, index, arrat) => {
return prev * cur
})
console.log(num1,num2);
(2)、reduceRight()跟reduce()一样只是从最后一项开始遍历。
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。