目录
一、Array数组对象
1、介绍
2、创建数组对象并赋值
3、访问数组元素
二、Array对象属性
1、constructor属性
2、length属性
3、prototype属性
三、Array对象的常用方法
1、isArray()
2、concat()
3、pop()
4、shift()
5、push()
6、unshift()
7、reverse()
8、sort()
9、some()
10、every()
11、filter()
12、find()
13、findIndex()
14、slice()
15、splice()
16、includes
17、indexOf()
18、join()
19、toString()
20、fill()
21、forEach()
22、map()
一、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);
=======================================================================
每天进步一点点~!
数组的操作也太常用了吧,多看看多看看!!!