目录
一、Array数组对象
1、介绍
- JavaScript中的数组对象(简称:数组),使用单独变量名存储一组值;
- 数组是引用类型数据;
- 数组的索引值从0开始,第一个元素在索引为0处;
- JavaScript中频繁使用;
2、创建数组对象并赋值
// 1、使用Array()构造函数 创建数组对象 然后赋值
let arr1 = new Array();
arr1[0] = "元素1";
arr1[1] = "元素2";
arr1[2] = "元素3";
console.log("创建的第1个数组arr1:", arr1);
// 2、使用Array()构造函数 创建数组对象的同时赋值
let arr2 = new Array("A", "B", "C", "D");
console.log("创建的第2个数组arr2:", arr2);
// 3、使用数组字面量 创建数组对象并赋值
let arr3 = [1, 2, 3, 4, 5];
console.log("创建的第3个数组arr3:", arr3);
3、访问数组元素
通过指定数组名和索引值,来访问数组中的元素;
let arr = [1, 2, 3, 4, 5];
console.log("获取数组中的第1个元素:", arr[0]);
console.log("修改前的第4个元素:", arr[3]);
console.log("修改数组中的第4个元素:", arr[3] = 8);
console.log("修改后的第4个元素:", arr[3]);
二、Array对象属性
序号 | 属性 | 描述 |
---|---|---|
1 | constructor | 返回创建数组对象的原型函数; |
2 | length | 设置或返回数组元素的个数(数组长度); |
3 | prototype | 允许你向数组对象添加属性或方法; |
1、constructor属性
let newArr = [1, 2, 3, 4, 5];
console.log("constructor属性:", newArr.constructor);
2、length属性
let newArr = [1, 2, 3, 4, 5];
console.log("length属性:", newArr.length);
3、prototype属性
Array.prototype.user = "zyl";
Array.prototype.getLastItem = ()=>{
return newArr[newArr.length - 1];
}
let newArr = [1, 2, 3, 4, 5];
console.log("使用prototype定义的属性user:", newArr.user);
console.log("使用prototype定义的方法getLastItem():", newArr.getLastItem());
三、Array对象的常用方法
序号 | 方法 | 描述 | 返回值 | 是否影响原数组 |
---|---|---|---|---|
1 | isArray() | 判断对象是否为数组; | Boolean值; | 否 |
2 | concat() | 拼接多个数组,并返回结果; | 拼接后的新数组; | 否 |
3 | pop() | 移除数组中的最后一个元素; | 被移除的元素; | 是 |
4 | shift() | 移除数组中的第一个元素; | 被移除的元素; | 是 |
5 | push() | 向数组末尾多个插入元素; | 数组长度; | 是 |
6 | unshift() | 向数组起始位置插入元素; | 数组长度; | 是 |
7 | reverse() | 反转数组; | 反转后的原数组; | 是 |
8 | sort() | 对数组进行排序; | 排序后的原数组; | 是 |
9 | some() | 判断数组中是否包含指定条件的元素; | Boolean值; | 否 |
10 | every() | 判断数组中的每个元素是否均符合指定条件; | Boolean值; | 否 |
11 | filter() | 筛选出所有符合条件的元素组成的数组; | 新数组; | 否 |
12 | find() | 筛选出第一个符合条件的数组元素; | 数组元素; | 否 |
13 | findIndex() | 查找第一个符合条件元素的索引值; | 数组元素索引值; | 否 |
14 | slice() | 用于截取数组; | 截取后的新数组; | 否 |
15 | splice() | 给数组中添加或删除元素; | 被删除元素组成的新数组; | 是 |
16 | includes() | 判断数组中是否包含指定元素; | Boolean值; | 否 |
17 | indexOf() | 查找数组中指定元素的索引值; | 索引值; | 否 |
18 | join() | 用于将数组元素连接成一个字符串; | 字符串; | 否 |
19 | toString() | 用于将数组元素连接成一个字符串; | 字符串; | 否 |
20 | fill() | 使用固定值填充数组; | 数组; | 是 |
21 | forEach() | 使数组中的每个元素都执行一次回调函数; | 无; | 否 |
22 | map() | 通过指定方法,处理数组中的每个元素; | 处理后元素依次组成的新数组; | 否 |
1、isArray()
Array.isArray(obj)
- 该方法用来判断传入的对象是否为数组;
- obj,为必填参数,表示要判断的对象;
- 如果是数组,返回true;否则返回false;
- 不影响原数组;
let obj = {name:"zyl"};
let arr = [1, 2, 3, 4, 5];
console.log("判断是否为数组:", Array.isArray(obj));
console.log("判断是否为数组:", Array.isArray(arr));
2、concat()
array1.concat(array2, array3,..., arrayX)
- 该方法用来连接多个数组;
- array2, array3,..., arrayX 为必须参数(1-x个),表示要拼接的数组;
- 返回连接后的新数组;
- 原数组不变;
// 2、concat()方法
let arr1 = [1, 2, 3, 4, 5];
let arr2 = ["A", "B", "C", "D"]
console.log("拼接后的arr1和arr2:", arr1.concat(arr2, arr2));
3、pop()
array.pop();
- 该方法用来删除数组的最后一个元素;
- 无参数;
- 返回被删除的元素;
- 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.pop());
console.log("原数组:", arr);
4、shift()
array.shift()
- 该方法用来删除数组中的第一个元素;
- 无参数;
- 返回被删除的第一个数组元素;
- 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.shift());
console.log("原数组:", arr);
5、push()
array.push(item1, item2, ..., itemX)
- 该方法用来在数组末尾插入元素;
- item1, item2, ..., itemX为要插入的元素;
- 返回插入元素后的数组长度;
- 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.push(6, 7, 8));
console.log("原数组:", arr);
6、unshift()
array.unshift(item1, item2, ..., itemX)
- 该方法用来在数组起始位置插入元素;
- item1, item2, ..., itemX为要插入的元素;
- 返回插入元素后的数组长度;
- 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.unshift(6, 7, 8));
console.log("原数组:", arr);
7、reverse()
array.reverse()
- 该方法用来反转数组元素;
- 无参数;
- 返回反转后的原数组;
- 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.reverse());
console.log("原数组:", arr);
8、sort()
array.sort(sortfunction)
- 该方法用来对数组元素进行排序;
- sortfunction为可选参数,规定排序顺序,必须是函数;
- 返回排序后的原数组;
- 改变原数组;
- 注意:默认升序,需要倒序的话,可以传入排序函数,也可以结合reverse()方法实现;
let arr = [6, 2, 9, 4, 5];
console.log("返回值:", arr.sort());
console.log("原数组:", arr);
9、some()
array.some(function(currentValue,index,arr), thisValue)
- 该方法用于检测数组中,是否包含有符合指定条件的元素;
- 只要有一个符合条件的元素则返回true,都不满足则返回false;
- 不影响原数组;
- 不会对空数组进行检测,直接返回false;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.some((item)=>{
return item > 2 ;
}));
console.log("原数组:", arr);
console.log("空数组:", [].some((item)=>{
return item > 2 ;
}));
10、every()
array.every(function(currentValue,index,arr), thisValue)
- 该方法用于检测数组中的每个元素是否都符合指定条件;
- 每个元素都符合条件则返回true,否则返回false;
- 不影响原数组;
- 不会对空数组进行检测,直接返回true;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.every((item)=>{
return item > 2 ;
}));
console.log("原数组:", arr);
console.log("空数组:", [].every((item)=>{
return item > 2 ;
}));
11、filter()
array.filter(function(currentValue,index,arr), thisValue)
- 该方法用于筛选数组中所有符合条件的元素;
- 返回筛选出来的元素组成的新数组;
- 不影响原数组;
- 对于空数组,不会进行操作,直接返回[];
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.filter((item)=>{
return item > 2 ;
}));
console.log("原数组:", arr);
console.log("空数组:", [].filter((item)=>{
return item > 2 ;
}));
12、find()
array.find(function(currentValue, index, arr), thisValue)
- 该方法用于筛选数组中第一个符合条件的元素;
- 返回筛选出来的数组元素;
- 不影响原数组;
- 对于空数组,不会执行回调函数,直接返回undefined;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.find((item)=>{
return item > 2 ;
}));
console.log("原数组:", arr);
console.log("空数组:", [].find((item)=>{
return item > 2 ;
}));
13、findIndex()
array.findIndex(function(currentValue, index, arr), thisValue)
- 该方法用于筛选数组中第一个符合条件元素的索引值(数组元素的索引值从0开始);
- 返回筛选出来的数组元素的索引值, 如果没有符合条件的元素返回 -1;
- 不影响原数组;
- 对于空数组,不会执行回调函数,返回-1;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.findIndex((item)=>{
return item > 2 ;
}));
console.log("原数组:", arr);
console.log("空数组:", [].findIndex((item)=>{
return item > 2 ;
}));
14、slice()
array.slice(start, end)
- 该方法用来截取数组,并返回截取后的新数组;
- start为可选参数,为开始截取的位置(截取的时候包含);可以为负数,表示在数组中从后往前的位置;
- end为可选参数,为截取的结束位置(截取的时候不包含);可以为负数,表示数组中从后往前的位置;end必须大于start;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.slice(1, 4));
console.log("返回值:", arr.slice(-2));
console.log("返回值:", arr.slice());
console.log("原数组:", arr);
15、splice()
array.splice(index,howmany,item1,.....,itemX)
- 该方法用于给数组中添加元素或删除元素;
- index 为必选参数,表示进行添加或删除的起始位置(操作时包含该位置);
- howmany 为可选参数,必须是数字,表示要删除的元素个数,可以为0;若未传入,则默认为所有元素;
- item1,.....,itemX 为可选参数,表示要添加到数组的新元素;
- 改变原数组;
let arr1 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr1.splice(1, 4));
console.log("arr1的原数组:", arr1);
let arr2 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr2.splice(2));
console.log("arr1的原数组:", arr2);
let arr3 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr3.splice(0, 2 , 7, 8));
console.log("arr1的原数组:", arr3);
16、includes
array.includes(searchElement, fromIndex)
- 该方法用于查找数组中是否包含指定元素;
- searchElement 为必选参数,表示要查找的元素;
- fromIndex 为可选参数,表示查找的起始索引值(查找时包含该位置);若该值大于数组长度,直接返回false;
- 若包含,则返回true,否则返回false;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.includes(4));
console.log("arr的返回值:", arr.includes(3, 2));
console.log("arr的返回值:", arr.includes(2, 3));
console.log("arr的原数组:", arr);
17、indexOf()
array.indexOf(item,start)
- 该方法用来查找数组中指定元素的索引值;
- item 为必选参数,表示要查找的指定元素;
- start 为可选参数,表示查找的起始位置;
- 若查到该元素,则返回元素索引值,否则,返回-1;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.indexOf(4));
console.log("arr的返回值:", arr.indexOf(3,4));
console.log("arr的原数组:", arr);
18、join()
array.join(separator)
- 该方法用来将数组中的所有元素连接成一个字符串;
- separator 为可选参数,表示连接使用的分隔符,默认为逗号【,】;
- 返回连接后的字符串;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.join());
console.log("arr的返回值:", arr.join('--'));
console.log("arr的原数组:", arr);
19、toString()
array.toString()
- 该方法用来将数组中的所有元素连接成一个字符串,使用逗号【,】分隔;
- 无参数;
- 返回连接后的字符串;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.toString());
console.log("arr的原数组:", arr);
20、fill()
array.fill(value, start, end)
- 该方法使用固定值替换数组元素;
- value 为必选参数,表示要替换成的值;
- start 为可选参数,表示开始填充的位置(填充时包括该位置);
- end 为可选参数,表示填充的结束位置(填充时不包括该位置),默认到数组结束;
- 返回替换后的数组;
- 改变原数组;
let arr1 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr1.fill(8));
console.log("arr1的原数组:", arr1);
let arr2 = [1, 2, 3, 4, 5];
console.log("arr2的返回值:", arr2.fill(8, 2, 4));
console.log("arr2的原数组:", arr2);
21、forEach()
array.forEach(callbackFn(currentValue, index, arr), thisValue)
- 该方法使数组中的每个元素,均调用一次回调函数;
- 无返回值;
- 不影响原数组;
- 空数组不会执行回调函数;
let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index, arr)=>{
item++
console.log(`${arr}中的第${index+1}个元素为${item}`);
})
console.log("原数组:", arr);
22、map()
array.map(function(currentValue,index,arr), thisValue)
- 该方法通过指定函数,处理数组中的每一个元素;
- 返回经过处理的元素依次组成的新数组;
- 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.map((item)=>{
return 'map' + item;
}));
console.log("原数组:", arr);
=======================================================================
每天进步一点点~!
数组的操作也太常用了吧,多看看多看看!!!