数组
在内存中开辟一个连续存储多个数据的存储空间,再起一个统一的名字 数组也是对象数据类型的,也是由键值对组成的
有一个length属性存储的是数组长度
-
push():向数组末尾增加新内容,返回新增后数组的长度,原有数组改变
var arr = [1,4,5,67,8]; // 添加一个 // 在最后添加一个数字5 arr.push(5); //输出 新数组的长度6 console.log(arr.push(5)); // 添加多个 //在最后添加数字112 和 34,字符串'avf' arr.push(112,34,'avf');
-
pop():删除数组最后一项,返回被删除的那一项,原有数组改变
var arr = [1,4,5,90,8]; // 删除数组中最后一项 arr.pop(); // 输出被删的那个数据 console.log(arr.pop());
-
shift():删除数组第一项,返回删除的一项,原有数组改变
var arr = [1,4,5,90,8]; //删除数组中第一项 arr.shift(); // 输出被删除的那个数据 console.log(arr.shift());
-
unshift():向数组开始位置追加新内容,返回新增后数组的长度,原有数组改变
var arr = [1,4,5,90,8]; //在数组的起始位置添加一个数据 arr.unshift(); // 输出新数组的长度 console.log(arr.unshift());
-
splice():
- splice(n,m)从索引 n 开始,删除 m 个把删除的部分以新数组返回,原有数组改变新增
var arr = [1,4,5,90,8]; //从下标为 0 开始删除 2 个数据 arr.splice(0,2); // 输出被删除的数据组成的新数组 console.log(arr.splice());
- splice(n,0,x,···)从索引 n 开始删除 0项,把更多需要插入的内容存放到 n 前面,修改
var arr = [1,4,5,90,8]; //从下标为 0 开始添加 1 个数据 arr.splice(0,0,23); // 输出被删除的数据组成的新数组 console.log(arr.splice());
- splice(n,m,x)把原有内容删除掉,用新的内容替换删除的内容
var arr = [1,4,5,90,8]; //从下标为 0 开始删除 2 个数据,替换成 23 arr.splice(0,2,23); // 输出被删除的数据组成的新数组 console.log(arr.splice());
- splice(n,m)从索引 n 开始,删除 m 个把删除的部分以新数组返回,原有数组改变新增
-
slice():在一个数组中,按照条件查找出其中的部分内容,两个参数(n,m),从索引n处开始找到m处不包含m,返回以一个新数组存储查找的内容,原有数组不变
var arr = [1,4,5,90,8]; //从下标为 0 开始截取,截取下标为 2 之前的数据 arr.slice(0,2); // 输出截取的数据组成的新数组 console.log(arr.slice());
-
concat():实现多个数组的拼接,返回新数组,原有数组不变
var arr = [1,4,5,90,8]; //将参数中的数据元素拆开,分别存入数组 arr 中 arr.concat([0,0,23]); // 输出新数组 [1,2,4,90,8,0,0,23] console.log(arr);
-
reverse():将数组元素颠倒顺序
var a1 =['A','a','b','E','P'] var temp = [11,14,15,16] var a2 = al.sort()console.log(a2); console.log(a1.reverse());//将a1数组中的元素顺序颠倒var newArr = al.concat(temp)console.log(newArr);
-
indexOf(元素):从左向右查找元素的位置。返回元素在数组中的下标(索引),返回-1表示没有找到
var arr = [12,25,33,12,89] var index1=arr.indexof(12)//从左往右查找返回找到的第一个元素的下标,第二个元素找不到 console.log(index1);
-
lastindexOf(元素):从右往左查找元素的位置。返回元素在数组中的下标(索引)
var arr = [12,25,33,12,89] var lastIndex = arr.lastIndexof(12) console.log(lastIndex)
-
sort():排序函数,默认按升序(从小到大)排列
var arr = [45,32,78,56,22,'aaa']; var a1 =['A','a','b','E','p'] console.log(arr.sort()); console.log(a1.sort ());
-
join(连接字符):作用是将数组中的元素通过给定的连接字符连成一个字符串
var arr = [11,22,33,44,55] var s1=arr.join['-']//元素之间用'-'连接 var s2 = arr. join()//默认情况(不带参数),元素之间用','连接
-
filter():可以实现对数组元素的"过滤",返回的元素构成一个新的数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var temp = arr.filter(function (value, index) { //(元素,下标) return index % 3 == 0 //返回下标对三取余等于零的元素 }) console.log(temp) //[1,4,7,10]
-
fill(值/变量):用给定的值或变量填充数组
var arr = new Array(5) arr.fill(1)//数组的5个单元都是2 console.log(arr) //[2, 2, 2, 2,
-
every(): 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回 true
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var temp = arr.every(function (value) { return value <= 10 //都小于等于10则返回true,否则返回false }) console.log(temp) //true
-
includes() :判断一个数组中是否包含一个指定的值
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var temp = arr.includes(3) var temp1 = arr.includes(3, 3) console.log(temp) //true console.log(temp1) //false
-
find() :判断一个数组中是否包含一个指定的值
const people = [ { name: "Matt", age: 27 }, { name: "Nicholas", age: 29 } ]; people.find((element, index, array) => element.age < 28) // // {name: "Matt", age: 27}
-
some():对数组每一项都运行传入的测试函数,如果至少有1个元素返回 true ,则这个方法返回 true
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; let someResult = numbers.some((item, index, array) => item > 2); console.log(someResult) // true
-
forEach():对数组每一项都运行传入的函数,没有返回值
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; numbers.forEach((item, index, array) => { // 执行某些操作 });
-
map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; let mapResult = numbers.map((item, index, array) => item * 2); console.log(mapResult) // 2,4,6,8,10,8,6,4,2