数组中常见的属性与方法
1. 创建数组
`可以使用 new 关键字来创建一个数组`
let arr = new Array()
`也可以直接通过数组字面量的形式来创建数组`
let fruits = ['Apple', 'Banana', 521, true];
`通过array的length属性可以获得数组中的元素个数,且总是大于数组最高项的下标。`
console.log(fruits.length); // 4
2. 通过索引访问数组元素
注: 索引从0开始
let fruits = ['Apple','Banana'];
console.log(fruits.length); // 2`
// 2. 通过索引访问数组元素
let first = fruits[0]; // Apple
let last = fruits[fruits.length - 1]; // Banana
`通过 [下标] 且下标小于数组长度否则会返回undefined`
let first = fruits[0]; // Apple
console.log(fruits[5]); // undefined
let last = fruits[fruits.length - 1]; // Banana
3. 删除数组末尾的元素
通过 .pop()方法 此方法改变原数组
let fruits = ['Apple','Banana','Orange'];
let last = fruits.pop(); // 删除了 Orange
// last 输出 'Orange'
// fruits 输出 ['Apple','Banana']
4. 删除数组头部元素
通过 .shiift() 方法 此方法改变原数组
let fruits = ['Apple','Banana','Orange'];
let first = first.shift(); // 删除了 Apple
// last 输出 'Apple'
// fruits 输出 ['Banana', 'Orange']
5. 添加元素到数组的头部
通过 .unshiift() 方法 此方法改变原数组 且此方法返回的并不是添加的元素而是数组的长度
let fruits = ['Apple','Banana','Orange'];
let newLength = fruits.unshift('Strawberry'); // 添加了 Strawberry
// newLength 输出 4
// fruits 输出 ['Banana', 'Orange']
6. 找出某个元素在数组中的索引
通过 .indexOf(a,b) 方法 ,如果不存在,则返回 -1。
接收两个参数 a要查找的元素b开始查找的位置
let fruits = ['Apple','Banana','Orange','Apple'];
fruits.push('Mango');
console.log(fruits);
fruits.indexOf('Apple'); // 输出 0
fruits.indexOf('Apple',1); // 输出 3
fruits.indexOf('apple'); // 输出 -1
7. 合并两个或多个数组
通过 .concat(values) 方法 此方法不会更改现有数组,而是返回一个新数组
let arrOne = ['Apple','Banana','Orange','Apple'];
let arrTwo = [1,2,3];
let arrCon = arrOne.concat(arrTwo);
console.log(arrCon);
// ['Apple', 'Banana', 'Orange', 'Apple', 1, 2, 3]
8.返回索引对应的元素
通过 .at() 方法
接收一个整数并返回该索引对应的元素,允许正数和负数。
负整数从数组中的最后一个元素开始倒数。 如果不存在返回 undefined
const array1 = [5, 12, 8, 130, 44];
array1.at(-2); // 130
array1.at(-1); // 44
array1.at(0); // 5```
------------------------------------------
在非数组对象上调用 at()
需要通过原型来调用at方法并使用call来指定this
const arrayLike = {
length: 2,
0: "a",
1: "b",
};
console.log(Array.prototype.at.call(arrayLike, -1)); // "b"
本文编写了数组中我们常用到的、常见的属性与方法, 删除元素增加元素等
本人第一次写文章可能不够完善 还有不足之处请大家多多指教。