JavaScript数组方法
数组的创建方式
var arr = []; // 空数组 var arr1 = new Array(); //创建一个空数组, var arr2 = new Array(2); //创建一个数组长度为2的空数组, var arr1 = new Array(2,3); //创建一个数组元素为2,3的数组,
1、toString()把数组转为字符串,以逗号隔开每个数组元素
var fruits = ["Banana","Orange","Apple","Mango"]; fruits.toString(); ===> Banana,Orange,Apple,Mango
2、join() 以固定字符数组转字符串 类似于toString(),但join可以设定分隔符,
fruits.join(" * ") ===> Banana * Orange * Apple * Mango
3、pop() 末尾删除 从数组中删除最后一个元素,返回值是删除的元素
4、push() 末尾添加 在数组末尾添加一个元素,返回值是新数组的长度
5、shift() 首位删除 删除数组的首个元素,并且把其他元素索引移至更低,返回值为被删除的元素
6、unshift() 首位添加 在数组首个元素前添加一个新的元素,并且更新元素索引,返回新数组的长度
7、length 提供了简易的向数组添加元素,fruits[fruits.length] = "Kiwi" //向fruits追加 "Kiwi"
8、delete 数组属于对象,所以也可以使用delete来删除元素 delete fruits[ 0 ] // 删除第一个元素
9、splice() 删除或者替换数组元素可用于向数组添加新项
fruits.splice(2, 0, "Lemon", "Kiwi"); //第一个参数2,规定添加元素的位置,第二个参数0定义删除多少元素 fruits.splice(0, 1); //删除多少个元素 1就删除一个,2就删除两个,从数组首个元素开始
10、concat() 连接数组通过合并(连接)现有数组创建一个新的数组
1) var myGirls = ["Emma", "Isabella"]; var myBoys = ["Jacob", "Michael", "Ethan"]; var myChildren = myGirls.concat(myBoys);
2) var arr1 = ["Emma", "Isabella"]; var arr2 = ["Jacob", "Michael", "Ethan"]; var arr3 = ["Joshua", "Daniel"]; var myChildren = arr1.concat(arr2, arr3);
3) var arr1 = ["Emma", "Isabella"]; var myChildren = arr1.concat(["Jacob", "Michael", "Ethan"]);
11、slice() 截取数组用现有数组的某个片段切出一个新的数组
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(2); //切数组元素,从首个元素开始,参数代表切除几个元素 只有start时,返回的是剩余的数组元素(可以理解为删除几个元素,从0索引号开始) var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1,3); // 第一个参数为起始位置(除去),第二个参数为结束位置 截取的元素,包含起始位置,不包含结束位置
12、reverse() 颠倒数组
// 颠倒数组顺序 var arr = ['pink', 'red', 'blue']; arr.reverse(); console.log(arr);
13、排序sort() sort 方法是按字母顺序排序,排序数字时,是按数的最高位来排序,需要在sort方法内写一个匿名方法function(a,b){ return a-b 是升序 // return b-a 是降序 },这样就可以正确排序数了
// sort 排序是按字母顺序排序的 数字排序需要有改动 var arr1 = [11, 77, 32, 45, 69]; arr1.sort(); //一位数字排序还可以 2位以上排序就不对了 console.log(arr1); arr1.sort(function(a, b) { // return a - b; //升序 return b - a; //降序 }) console.log(arr1);
14、获取数组元素索引号 indexOf(元素) lastIndexOf(元素)
indexOf(想要获取的元素),从左到右查询,只返回第一个查到的元素的索引号,如果数组中不存在就返回 -1
lastIndexOf(想要获取的元素),从右到左查询,只返回第一个查到的元素的索引号,如果数组中不存在就返回 -1
15、根据索引号返回字符
charAt() 方法charAt(index) index为索引号
Array[] 方法Array[index] index为索引号
16、数组去重
核心算法,遍历旧数组,把每个元素都和新数组比较,如果有相同的元素就不存入新数组,反之则存入新数组
封装一个数组去重的方法,创建一个新数组,遍历旧数组,判断是否存在,通过indexOf(查询的元素)来判断,如果返回的是-1就使用push()存入新数组。
// 封装一个去重的方法 function unique(arr) { var newArr = []; for (var i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) == -1) { newArr.push(arr[i]); } } return newArr; } console.log(unique(['c', 'a', 'z', 'a', 'x', 'c', 'y', 'a']));
17、数组的检测方式
instanceof 运算符
// 1、instanceof 运算符 var arr = []; console.log(arr instanceof Array);
isArray 方法 ie9以上才支持
// 2、isArray 是一个方法 console.log(Array.isArray(arr)); // ie9以上才支持 优先于instanceof
18、substr 截取
// substr 截取字符 var c = '改革春风吹满地'; console.log(c.substr(2, 2));
19、replace 替换
// replace 替换字符 var d = 'aobocodo'; console.log(d.replace('o', '9')); while (d.indexOf('o') != -1) { d = d.replace('o', '9'); } console.log(d);
20、split 字符转数组
// split 根据分隔符 字符转为数组 var e = 'a,b,c,d'; console.log(e.split(','));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~