平时多做企业应用开发,抱着实用为主,对前端技术理解得比较肤浅,下面就是肤浅地对 js 数组的属性和方法及对它操作的 jquery 方法做些记录;

js 数组是 js 内建的一个非常强大数据类型,由于 js 是弱类型语言,所以一个数组可以保存多种类型的数据: 数字、字符串、对象、函数、布尔... ...;

  1. var arr = [1,{name:'Jonh',id:1001}, function(){console.log('test');},'hello world',true];

常用访问数组元素的方法:

for 和 for-in 在循环时,如果数组大小做了改变,使用起来会有所区别;

  1. var testArr1 = [1,2,3,4,5];
  2.  
  3. // for, 因为 testArr1.length 是一个常数 5, 循环过程 testArr1 大小变了,循环次数还是 5;
  4. for(var i = 0; i < testArr1.length; ++i){
  5. if(i == 3) testArr1.push(6); // 添加一个元素;
  6. console.log(testArr1[i]); // 访问不到新加的元素 6;
  7. }
  8.  
  9. var testArr2 = [1,2,3,4,5];
  10.  
  11. // for-in 如果循环过程中 testArr2 的大小变了, i 如果大于了改动后的 testArr2.length,会马上终止循环
  12. for(var i in tsetArr2){
  13. if(i==3)testArr2.push(6); // 添加一个元素;
  14. console.log(testArr2[i]); // 可访问到新加的元素 6;
  15. }

jquery 循环: $.each, $.grep, $.map 与 for 最大不同是循环过程不能退出,即一定会访问数组中的每个元素到结束;而for 可以用 break 中断循环;

  1. var testArr = [1,2,3];
  2.  
  3. //访问数组元素;
  4. $.each(arr,function(index,elem){
  5. });
  6.  
  7. // 返回符合条件的元素,组成一个新的数组;
  8. //注意 function(elem,index) 第一个实参是元素,第二个才是元素的索引
  9. var newArr = $.grep(arr,function(elem,index){
  10. //condition
  11. return elem==1 or elem ==2;
  12. });
  13. // newArr is [1,2]
  14.  
  15. // 返回任意新的数组元素,组成 一个新的数组;
  16. var newArr = $.map(arr,function(index,elem){
  17. return 'test-' + index;
  18. });
  19. // newArr is ['test-1','test-2','test-3'];

识别数组:

  1. // 数组是一种特殊的 object 类型,typeof 拿到的只是 object;
  2. typeof arr; // => object
  3.  
  4. // 可用下面 2 种方法判断对象是否为数组
  5. arr.constructor.toString().indexOf('Array') > 0
  6. // 或
  7. Object.prototype.toString.call(arr) == '[object Array]'

常用方法:

  1. // join 将数组中的元素组合成一个字段串,元素之间用指定的字符串连接起来;
  2. arr.join(','); //"1,[object Object],function (){console.log('test');},hello world,true"
  3.  
  4. // push 向数组添加新的元素, 数组改变;
  5. arr.push('new');
  6.  
  7. // pop 弹出最后一个元素,数组改变;
  8. arr.pop(); // 'new'
  9.  
  10. // slice(startIdx, count) 获取数组中一段连续的元素,组成一个新的数组;startIdx 开始索引,count 数量;
  11. arr.slice(0,1); //[1];
  12.  
  13. // splice(startIdx,count,otherElems) 有强大的功能,包括: 插入,替换,删除;startIdx 开始索引, count (替换,删除)数量, 数组改变并返回一个新的数组;
  14. // 替换
  15. var testArr = [1,2,3,4,5];
  16. 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";
  17. // 删除,省略 otherElems 就是删除
  18. var testArr = [1,2,3,4,5];
  19. testArr.splice(0,2); // testArr is [3,4,5];
  20. //插入,将 count =0 ,即不作替换直接插入
  21. var testArr = [1,2,3,4,5];
  22. testArr.splice(2,0,7,8,9); //testArr is [1,2,7,8,9,3,4,5];

js 数组常用的操作函数整理的更多相关文章

  1. JS 数组相关的操作函数

    // 1.数组拼接 concat() var a = [1, 2]; var b = [3, 4]; console.log(a.concat(b)); // [1, 2, 3, 4] // 2.数组 ...

  2. JS 数组间的操作

    JS 数组间的操作(交集,并集.差集) 以下是js数组之间常用的操作,如交集,并集.差集等. 迭代 each是一个集合迭代函数,可以将一个函数作为参数和一组可以选的参数.依次将集合的每一个元素和可选参 ...

  3. js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)

    js原生的url操作函数,完善的. /*****************************/ /* 动态修改url */ /*****************************/ var ...

  4. 常用的WinAPI函数整理

    常用的WinAPI函数整理 一.进程  创建进程:    CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&s ...

  5. js数组常用操作方法小结(增加,删除,合并,分割等)

    本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shi ...

  6. MATLAB 常用形态学操作函数

    常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...

  7. [转载]c++常用字符串操作函数

    原文地址:c++常用字符串操作函数作者:Valsun 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source ...

  8. php课程 4-17 数组键值操作函数有哪些

    php课程 4-17  数组键值操作函数有哪些 一.总结 一句话总结:多看学习视频 1.php中数组的键值操作函数有哪6个? • array_values();获取数组中的值• array_keys( ...

  9. js中常用的操作

    1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器

随机推荐

  1. webkit内核下的mouseup后mousemove自动触发问题及解决方法

    如题,就以chrome为代表举例说明遇到mousemove的问题. 为body分别绑定onmousedown.onmousemove.onmouseup,并为触发时打印至控制台.代码如下(同学不要忘记 ...

  2. Redis简介与简单安装

    Redis简介与简单安装   一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...

  3. C++ Builder中splitter控件的使用方法简介

    C++ Builder提供了一个Splitter控件来实现对用户窗口的分割,只需拖动该控件到窗体上,就可以实现窗口的任意分割.把面板控件(Panel)拖动到窗体上,设置其对齐方式,然后把Splitte ...

  4. GitHub 简易使用

    笔记内容 学习笔记-段玉磊 Github Github 命令 写这篇文章主要写一下如何运用终端命令,进行Git的配置以及使用,由于本人我不太习惯使用图形IDE,效率没有命令行高,我还是推荐使用命令行进 ...

  5. SZU:D89 The Settlers of Catan

    Judge Info Memory Limit: 65536KB Case Time Limit: 3000MS Time Limit: 3000MS Judger: Number Only Judg ...

  6. IOS开发小功能2:二维码扫描界面的设计(横线上下移动)

    效果图如上,实现的是一个二维码扫描界面. 下面我贴出线条上下移动的代码,至于二维码的代码是用的第三方库. 首先是整体的结构: 注意下面的库文件一个都不能少,否则会报错. TLTiltHighlight ...

  7. Mysql--选择适合的引擎,提高操作速度

    在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中   一.数据引擎简介 在MySQL 5.1中,MySQL AB引入了新的插件 ...

  8. 回调函数 use

    $info["fulltext"] = preg_replace_callback( $search2, function($matches) use ($search, $uni ...

  9. DOM处理

    DOM处理 这几天整理了一下思路,本来觉得DOM部分会有很多东西,但是忽然发现频繁使用的其实并不太多 class class处理部分主要有四个 hasClass:检查元素是否包含某个class add ...

  10. 使用 NPC,NPCManager 在 XNA 中创建 NPC

    使用 NPC,NPCManager 在 XNA 中创建 NPC 平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐 ...