007-Array数组

1. 数组基础

let arr1  = new Array(e1,e2,e3);
let arr2 = [e1,e2,e3];
let arr3 = [];  //创建空数组

2. 数组的方法

2.1. 方法概览

| 归类  | 方法                    | 口诀   |
| ---   | ---------------------- | ---    |
| 增    | push(a1, a2, a3...)    | 尾加多  |
|  ^^   | unshift(a1,a2,a3...)   | 头加多  |
| 删    | pop()                  |  尾删一 |
|   ^^  | shift()                |  头删一 |
| 改    | splice(n1,n2,a1,a2...) |  任意位置 增删多   |
| ^^    | slice(a,b)             |  截取   |
| ^^    | join("#")              |转String |
| ^^    | concat(arr1,arr2)      |  拼接   |
| ^^    | reverse()              |  倒置   |
| 查    | includes(a[,index])    | 支持找NaN      |
| ^^    | indexOf(a[,index])     | 不支持找NaN    |
| ^^    | lastIndexOf(a[,index]) | 不支持找NaN    |

2.2. 增

2.3. 删

2.4. 改

let arr = ['A','B','C','D','E','F'];
let arr1 = arr.slice(2,5);
let arr2 = arr.slice(2);
let arr3 = arr.slice(2,-1);
console.log(arr1);
console.log(arr2);
console.log(arr3);

- |269

let arr = ['A','B','C','D','E','F'];
let arr1 = arr.join();
let arr2 = arr.join(""); //空字符串
let arr3 = arr.join("#");
let arr4 = arr.join(" "); //三个空格
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
console.log(arr); //判断是否改变原数组

- 运行结果:|360

let arrA = ['A','B','C'];
let arrB = ['D','E','F'];
let arr1 = arrA.concat(arrB);
console.log(arr1);
console.log(arrA);
console.log(arrB);

- |318

let arrA = ['A','B','C'];
let arr1 = arrA.reverse();
console.log(arr1);
console.log(arrA);
//测试倒置后arrA和arr1是不是同一个数组
arr1[3] = "D";
console.log(arr1);
console.log(arrA);

- |295

2.5. 查

方法 严格程度 底层原理 特殊值备注
Object.is() 🌟🌟🌟🌟🌟 SameValue ✅ NaN === NaN,✅ 区分 +0 和 -0
Number.isNaN() 🌟🌟🌟🌟🌟 === NaN(无类型转换) ✅ 精确判断 NaN,❌ 不误判字符串
includes() 🌟🌟🌟🌟🌟 SameValueZero ✅ NaN == = NaN,✅ +0 === -0(不区分)
=== 🌟🌟🌟🌟 Strict Equality ❌ NaN !== NaN,✅ +0 === -0(不区分)
indexOf() 🌟🌟🌟 === ❌ 无法识别 NaN,✅ 匹配 +0/-0 (不区分)
isNaN() 🌟🌟 Number() + isNaN ⚠️ 易误判:如 isNaN('abc') → true
== 🌟 Abstract Equality ❌ NaN,⚠️ 类型自动转换,易出错
let arr = ["a",'b','c',NaN]
let index1 = arr.indexOf(NaN); //-1
let index2 = arr.indexOf("b"); //1
let index3 = arr.lastIndexOf(NaN); //-1
let index4 = arr.lastIndexOf("c"); //2
console.log(index1)
console.log(index2)
console.log(index3)
console.log(index4)

- 运行结果:|445