js数组中 我们很多数组的方法都知道其中的含义 但是每一次用的都不是很顺手 下边我给大家写了一个小小的demo 来理解那些 近似”双胞胎“的东西

  1. // splice方法
  2. var a=[1,2,3,4,5,6,7,8];
  3. console.log(a.splice(4))//5 6 7 8 从第四个位置开始删除 返回删除的元素 索引值为0开始 不包括第四个位置的数组元素
  4. console.log(a)// 1 2 3 4 新的修改完毕的数组
  5. console.log(a.splice(1,2)) //2 3 返回删除的元素
  6. console.log(a) //1 4
  7. console.log(a.splice(1,1)) //
  8. console.log(a) //
  9. console.log(a.splice(1,2)) //返回空数组 因为没有找到数组元素
  10. console.log(a) //1
  11.  
  12. var b = [1,2,3,4,5];
  13. console.log(b.splice(2,0,'a','b')) //[] 如果没有删除元素也是返回一个空数组
  14. console.log(b) // [1, 2, "a", "b", 3, 4, 5]
  15. console.log(b.splice(2,2,[1,2],3)) // a b
  16. console.log(b) //[1, 2, [1, 2], 3, 3, 4, 5]
  17. // push 和pop
  18. var stack=[];
  19. console.log(stack.push(1,2)) //2 返回的是数组新的长度
  20. console.log(stack) // 1 2
  21. console.log(stack.pop()) //2
  22. // 删除数组的最后一个元素减小数组的长度并且返回他删除的数值 返回的是删除的数值 返回的是删除的数值 返回的是删除的数值(重要的事情说三遍)
  23.  
  24. // unshift 和shift
  25.  
  26. var a=[];
  27. console.log(a.unshift(1)); //1 返回数组新的长度 这个是在头部添加元素
  28. console.log(a.unshift(2)); //2 返回数组新的长度 这个是在头部添加元素
  29. console.log(a) // 2 1
  30.  
  31. console.log(a.shift(2)); //2 删除一个元素并且把他返回
  32. console.log(a) //
  33.  
  34. // toString() 和 toLocalestring()
  35.  
  36. var a = [1,2,3];
  37. console.log(a.toString()) // 1,2,3
  38. console.log(a) // [1,2,3] 注意: toString 适合不使用参数的join方法返回的字符串是一样的
  39. console.log(a.join()) // 1,2,3
  40. console.log(a.toLocaleString()) // 1,2,3
  41.  
  42. // foreach
  43.  
  44. var date=[1,2,3,4,5];
  45. var sum = 0;
  46. date.forEach(function(value){ sum+=value;})
  47. console.log(sum) //
  48. date.forEach(function(v,i,a){ a[i]=v+1;})
  49. console.log(date) //[2,3,4,5,6] 参数 数组元素 元素索引 数组本身
  50.  
  51. // map
  52. a = [1,2,3];
  53. console.log(a.map(function(x){return x*x})) // 1,4,9 返回一个新的数组 但是并没有修改原来数组的元素
  54. console.log(a) // 1,2,3
  55. a = [5,4,3,2,1];
  56. console.log(a.filter(function(x) {
  57. return x < 3;
  58. })) // 2 1
  59. console.log(a) // [5,4,3,2,1]
  60.  
  61. // every 和some
  62.  
  63. a = [1,2,3];
  64. console.log(a.every(function(x){return x<10})) //true
  65. console.log(a.every(function(x){return x%2===0})) //false
  66.  
  67. // indexOf 和lastIndexOf
  68.  
  69. a = [1,2,3,4];
  70. console.log(a.indexOf(2)) //1 从头开始返回找到的元素的索引 a[1]=2
  71. console.log(a.indexOf(1)) //0 a[0]=1
  72. console.log(a.lastIndexOf(3));// 从尾开始 2
  73. console.log(a.lastIndexOf(1)); // 0 索引为0
  74. console.log(a.indexOf(5))// -1 如果没有找到 那么就返回 -1

都加上了注释 可以拿过去自己解除 注释 看一下效果

js 数组容易弄混的那些方法的更多相关文章

  1. JS数组去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  2. coding++:JS数组去重的几种常见方法

    一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq ...

  3. JS数组的concat、push等方法,操作的是地址指针,而非内存操作

    var a = [{x:1}, {y:1}, {z:3}]; var b = a.concat(['gg', 'ff']); var c = []; c.push(a[1]); console.log ...

  4. 【原】js数组对象去重最简单的方法

    简单的数组去重是比较简单的,方法也特别多,如给下面的数组去重: let arr = [1,2,2,4,9,6,7,5,2,3,5,6,5] 最常用的可以用for循环套for循环,再用splice删除重 ...

  5. js数组中容易误用的一些方法

    1.every和some 两个方法的参数都是一个函数,函数的有3个参数,依次是当前值value,索引index,数组array every判断数据中的每一项是否满足某个条件,如果满足就返回true,有 ...

  6. js 数组的pop(),push(),shift(),unshift()方法小结

    关于数组的一些操作方法小结: pop(),push(),shift(),unshift()四个方法都可改变数组的内容以及长度: 1.pop() :删除数组的最后一个元素,并返回被删除的这个元素的值: ...

  7. js数组中对象去重 (reduce() 方法)

    一个数组中含有对象,并且去掉数组中重复的对象.主要代码如下: var arrData = [ {id: , name: "小明"}, {id: , name: "小张&q ...

  8. js数组去重的方法(转)

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  9. js 数组api

    Javascript Array API   JS数组对象提供了很多API方法,要用到的朋友可以查阅哈,如有错误欢迎指正. /** * Created by Administrator on 2017 ...

随机推荐

  1. Linux tftp配置

    TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现. xinetd(eXtended InterNET services daemon)是新一代的网络守护进程服务程序,又叫超级INTE ...

  2. 一起來玩鳥 Starling Framework(2)效能測試以及Image與Texture

    上一篇我們放了一個Quad與TextField在舞台上慢慢轉.眼尖的可能會發現轉起來邊緣有點鋸齒,這可以透過設定Starling的反鋸齒來解決,在Main.as裡,新增了_starling之後,可以加 ...

  3. 转:ios学习指南

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Franz Fang链接:https://www.zhihu.com/question/20264108/answer/302 ...

  4. IStorage

    IStorage 接口支持结构化存储对象的创建和管理. 结构化存储允许分层存储在单个文件的信息,和通常被称为“文件系统内文件”. 元素的结构化存储对象存储和小溪. 存储类似于目录,和流类似于文件. 在 ...

  5. Eclipse重新导入Tomcat启动出错选择不了文件夹

    如果你已经把tomcat配置进了Eclipse,却因为某些原因delete了服务器,再想导入同版本的服务器就有可能会报Could not publish to the server.错误,并且添加服务 ...

  6. Node.js meitulu图片批量下载爬虫 1.05版(Final最终版)

    //====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...

  7. Django——Django,uwsgi Nginx组合建站

    近来抽时间看了点关于python的资料,试着架设了下运行环境,于是写了本文记录之. 用到的软件: Django-1.6.1 uwsgi-2.0.7 python-3.3.3 nginx-1.7.7 安 ...

  8. J2SE语言--百度百科

    Java2平台包括:标准版(J2SE).企业版(J2EE)和微缩版 (J2ME)三个版本.J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系.J2SE就是 ...

  9. hibernate 继承映射关系( SINGLE_TABLE)

    三种继承映射关系.   1,SINGLE_TABLE   person student  teacher 在一个表中,student和teacher继承自person,通过一个Discriminato ...

  10. Refactoring之——代码的坏味道(一)过长方法

    1 代码的坏味道 重构一书中提到了22种代码的坏味道,大致可以分为几类. 识别代码的坏味道,有助于发现代码的潜在问题,从而可以有的放矢的修改现有代码,使之不断完善. 1.1 Bloaters(臭鲱,暂 ...