js 数组常用的操作函数整理
平时多做企业应用开发,抱着实用为主,对前端技术理解得比较肤浅,下面就是肤浅地对 js 数组的属性和方法及对它操作的 jquery 方法做些记录;
js 数组是 js 内建的一个非常强大数据类型,由于 js 是弱类型语言,所以一个数组可以保存多种类型的数据: 数字、字符串、对象、函数、布尔... ...;
var arr = [1,{name:'Jonh',id:1001}, function(){console.log('test');},'hello world',true];
常用访问数组元素的方法:
for 和 for-in 在循环时,如果数组大小做了改变,使用起来会有所区别;
var testArr1 = [1,2,3,4,5]; // for, 因为 testArr1.length 是一个常数 5, 循环过程 testArr1 大小变了,循环次数还是 5; for(var i = 0; i < testArr1.length; ++i){ if(i == 3) testArr1.push(6); // 添加一个元素; console.log(testArr1[i]); // 访问不到新加的元素 6; } var testArr2 = [1,2,3,4,5]; // for-in 如果循环过程中 testArr2 的大小变了, i 如果大于了改动后的 testArr2.length,会马上终止循环 for(var i in tsetArr2){ if(i==3)testArr2.push(6); // 添加一个元素; console.log(testArr2[i]); // 可访问到新加的元素 6; }
jquery 循环: $.each, $.grep, $.map 与 for 最大不同是循环过程不能退出,即一定会访问数组中的每个元素到结束;而for 可以用 break 中断循环;
var testArr = [1,2,3]; //访问数组元素; $.each(arr,function(index,elem){ }); // 返回符合条件的元素,组成一个新的数组; //注意 function(elem,index) 第一个实参是元素,第二个才是元素的索引 var newArr = $.grep(arr,function(elem,index){ //condition return elem==1 or elem ==2; }); // newArr is [1,2] // 返回任意新的数组元素,组成 一个新的数组; var newArr = $.map(arr,function(index,elem){ return 'test-' + index; }); // newArr is ['test-1','test-2','test-3'];
识别数组:
// 数组是一种特殊的 object 类型,typeof 拿到的只是 object; typeof arr; // => object // 可用下面 2 种方法判断对象是否为数组 arr.constructor.toString().indexOf('Array') > 0 // 或 Object.prototype.toString.call(arr) == '[object Array]'
常用方法:
// join 将数组中的元素组合成一个字段串,元素之间用指定的字符串连接起来; arr.join(','); //"1,[object Object],function (){console.log('test');},hello world,true" // push 向数组添加新的元素, 数组改变; arr.push('new'); // pop 弹出最后一个元素,数组改变; arr.pop(); // 'new' // slice(startIdx, count) 获取数组中一段连续的元素,组成一个新的数组;startIdx 开始索引,count 数量; arr.slice(0,1); //[1]; // splice(startIdx,count,otherElems) 有强大的功能,包括: 插入,替换,删除;startIdx 开始索引, count (替换,删除)数量, 数组改变并返回一个新的数组; // 替换 var testArr = [1,2,3,4,5]; var retArr = testArr.splice(0,2,7,8,9);//retArr is [1,2], testArr is [7,8,9,3,4,5], "7,8,9" 是替换 "1,2"; // 删除,省略 otherElems 就是删除 var testArr = [1,2,3,4,5]; testArr.splice(0,2); // testArr is [3,4,5]; //插入,将 count =0 ,即不作替换直接插入 var testArr = [1,2,3,4,5]; testArr.splice(2,0,7,8,9); //testArr is [1,2,7,8,9,3,4,5];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?