在此归纳总结了一些数组的常用方法
1、push() 在数组的尾部新增一个或多个元素 // 返回值: 新增元素后数组的长度 // 是否影响原数组: 影响
var arr = [1, 2, 3];
var result = arr.push("a");
var result = arr.push("a", "b", "c");
console.log(result); // 4
console.log(arr);
2、unshift() 在数组的头部新增一个或多个元素 // 返回值: 新增元素后数组的长度 // 是否影响原数组: 影响
var arr = [1, 2, 3];
var result = arr.unshift("a"); // 4 => ["a",1,2,3]
var result = arr.unshift("a", "b", "c"); // 6 => ['a', 'b', 'c', 1, 2, 3]
console.log(result);
console.log(arr);
3、pop() 在数组的尾部删除一个元素 // 返回值:被删除的元素 // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.pop();
console.log(result);
console.log(arr);
4、shift() 在数组的头部删除一个元素 // 返回值:被删除的元素 // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.shift();
console.log(result);
console.log(arr);
5、 splice() 数组任意位置的增删改 // splice(startIndex,n) 删除 => 自下标为startIndex(起始下标)开始,删除n个元素 // 返回值:被删除的元素形成的数组(新) // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.splice(2, 2);
console.log(result);
console.log(arr);
6、splice(startIndex,0,arg1,arg2...argN) 新增 => 自下标为startIndex(起始下标)开始,删除0个元素,再新增一个或多个元素(从第三参数开始,都是新增的元素) // 返回值:被删除的元素形成的数组(新增 => 删除0个 => []) // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.splice(2, 0, "a", "b", "c");
console.log(result);
console.log(arr);
7、splice(startIndex,n,arg1,arg2...argN) 新增 => 自下标为startIndex(起始下标)开始,删除n个元素,再新增一个或多个元素(从第三参数开始,都是新增的元素) // 返回值:被删除的元素形成的数组 // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.splice(2, 2, "a", "b");
console.log(result);
console.log(arr);
8、reverse() 数组反转/翻转 // 返回值: 翻转后的原数组 // 是否影响原数组: 影响
var arr = [1, 2, 3, 4, 5, 6];
var result = arr.reverse();
console.log(result);
console.log(arr);
9、includes() 判断数组中是否存在某个元素 // 返回值: 存在 => true 不存在 => false // 是否影响原数组: 不影响
var arr = [1, 2, 3, 4, 5, 6, 7];
var result = arr.includes(5);
console.log(result);
var result = arr.includes("1");
console.log(result);
10、indexOf() 返回某个元素,在数组中第一次出现的位置 // 返回值: 存在 => 返回下标(index >= 0) 不存在 => -1 // 是否影响原数组: 不影响 // 注意:此方法也可判断数组中是否存在某个元素 => 存在 => 返回下标(index >= 0) 不存在 => -1
var arr = [1, 2, 5, 3, 4, 5, 6, 7];
var result = arr.indexOf(5);
console.log(result);
var result = arr.indexOf("1");
console.log(result);
11、join(char) 用特定字符将数组拼接形成字符串 (char默认为",") // 返回值: 字符串 // 是否影响原数组: 不影响
var arr = ["a", "b", "c", "d"];
var result = arr.join("-");
var result = arr.join("+");
var result = arr.join("/");
var result = arr.join("");
var result = arr.join();
console.log(result);
12、concat() 数组合并/拼接 => 将多个数组或元素合并为一个新数组 // 如果合并的是数组,则将数组中的每个元素放到新数组中 // 如果合并的是非数组,直接放到新数组中 // 返回值: 数组合并后的新数组 // 是否影响原数组 不影响
var arr = [1, 2, 3];
var brr = [4, 5, 6];
var crr = [7, 8, 9]; // 创建新数组 [] 将 arr brr crr中的每个元素放到新数组中
var result = arr.concat(brr, crr);
var result = arr.concat("hello", brr, "world", crr);
console.log(result);
console.log(arr, brr, crr);
13、sort() 数组排序 // 1. 字符排序 比较字符对应的unicode码(包含ASCII), 第一个不相同就比第一个,第一个相同就比第二个 // 2. 纯数字排序 返回值: 排序后的原数组 // 是否影响原数组 : 影响 // ASCII(0-127) -> GB2312 GBK -> Unicode -> utf-8
//字符排序
var list = [86, 58, 61, "哈", 43, 92, "hello", 71, "world", 5, "嘿", 8, 9, 6, 3, 2]; var result = list.sort();
console.log(result);
console.log(list);
//sort纯数字排序 sort方法传入一个函数作为实际参数(定义如何排序),该函数在sort内部执行
// 传入的函数定义如何排序?
// 函数有两个形参 表示参与比较的前后两个元素,根据函数返回的结果来定义排序的方式
var list = [86, 58, 61, 43, 92, 71, 5, 8, 9, 6, 3, 2];
list.sort(function (a, b) {// a b 参与比较的前后两个元素
// console.log(a, b);
// return a - b; // a - b > 0 => a > b 时交换位置 大值放后面 从小到大排
// return b - a; // b - a > 0 => a < b 时交换位置 小值放后面 从大到小排
//小结论 如果返回值>0将交换位置 });
console.log(list);
14、instanceof 判断某个数据 是否是由 某个构造函数创建的 (有问题,不是很准确->后续补充)
console.log(arr instanceof Array);
console.log(obj instanceof Object);
15、slice(i,j) 截取数组,从i开始,到j结束,包含i不包含j,返回新的数组 // j可以超出数组的长度(截取完为止) // i和j都不写,表示截取数组中所有的值
var arr2 = arr.slice(-3,60) ; // i为负数时,倒着数
console.log(arr2);
var arr2 = arr.slice() ; // 截取数组中所有的值
console.log(arr2);
以上方法没有写出结果,需要观者自己通过代码测试,加深使用印象