JavaScript数组知识


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>数组操作</title>
  6. <link rel="icon" type="text/css" href="images/favicon.ico">
  7. </head>
  8. <body>
  9. </body>
  10. <script>
  11. /*
  12. //instanceof
  13. var arr = [12,23,45,6,89];
  14. console.log(arr instanceof Array);//true
  15. //Array.isArray(参数); // 判断参数是不是数组,返回布尔值;
  16. var arr = [1, 2, 3];
  17. var num = 123;
  18. console.log(Array.isArray(arr));//true
  19. console.log(Array.isArray(num));//false
  20. // 数组.toString() 把数组变成字符串,去除[] 内容有逗号链接
  21. var arr = ["aaa","bbb","ccc"];
  22. console.log(arr.toString());// aaa,bbb,ccc
  23. //数组.valueOf() 返回数组本身
  24. var arr = ["aaa","bbb","ccc"];
  25. console.log(arr.valueOf());// ["aaa", "bbb", "ccc"]
  26. //数组.join(参数) 数组中的元素可以按照参数进行连接变成一个字符串
  27. var arr = ["aaa","bbb","ccc"];
  28. //console.log(arr.join("-"));// "aaa-bbb-ccc"
  29. //console.log(arr.join(""));// "aaabbbccc"
  30. //console.log(arr.join(" "));// "aaa bbb ccc"
  31. //数组.push() //在数组的最末尾添加元素;
  32. var arr = [1,2,3,4];
  33. var arr1 = arr.push(0);
  34. console.log(arr);//[1, 2, 3, 4, 0]
  35. console.log(arr1);// 5 返回数组的长度
  36. //数组.pop() 不需要参数 在数组的最末尾删除一项
  37. var arr = [1,2,3,4];
  38. var arr2 = arr.pop();
  39. console.log(arr);// [1, 2, 3] 改变原数组
  40. console.log(arr2);// 4 返回值是被删除的一项
  41. //数组.unshift() //在数组的最前面添加一个元素;
  42. var arr = [1,2,3,4];
  43. var arr3 = arr.unshift(9);
  44. console.log(arr);//[9, 1, 2, 3, 4]
  45. console.log(arr3);//5 返回值是数组的长度
  46. //数组.shift() 不需要参数 在数组的最前面删除一项
  47. var arr = [1,2,3,4];
  48. var arr4 = arr.shift();
  49. console.log(arr);//[2, 3, 4] 返回被修改的数组
  50. console.log(arr4);// 1 返回被删除的一项
  51. //数组元素的排序
  52. //reverse() 翻转数组
  53. var arr = [12,56,89,98,68,87];
  54. var arr5 = arr.reverse();
  55. console.log(arr);// [87, 68, 98, 89, 56, 12]
  56. console.log(arr5);// [87, 68, 98, 89, 56, 12]
  57. //sort() // 数组中元素排序;(默认:从小到大)
  58. //默认:按照首个字符的Unicode编码排序;如果第一个相同那么就比较第二个...
  59. var arr = [12,35,24,56,42,8,5,68,86];
  60. var arr6 = arr.sort();
  61. console.log(arr);//[12, 24, 35, 42, 5, 56, 68, 8, 86]
  62. console.log(arr6);//[12, 24, 35, 42, 5, 56, 68, 8, 86]
  63. //sort() 用回调函数进行升序和降序的排列
  64. var arr = [12,35,24,56,42,8,5,68,86];
  65. arr.sort(function(a,b){
  66. return a-b;//升序排列
  67. });
  68. console.log(arr);//[5, 8, 12, 24, 35, 42, 56, 68, 86]
  69. //数组元素的操作
  70. //concat()
  71. var arr = [1,2,3];
  72. var arr8 = ["a","b","c"];
  73. var arr9 = arr.concat(arr8);
  74. console.log(arr);//[1, 2, 3]
  75. console.log(arr8);//["a", "b", "c"]
  76. console.log(arr9); //[1, 2, 3, "a", "b", "c"]
  77. //数组.slice(开始索引值,结束索引值);不包括结束索引 //数组截取;
  78. var arr = [1, 2, 3, "a", "b", "c"];
  79. var arr10 = arr.slice(1,4);
  80. console.log(arr);//[1, 2, 3, "a", "b", "c"]
  81. console.log(arr10);//[2, 3, "a"]
  82. //数组.splice(开始索引值,删除几个,替换内容1,替换内容2,...);
  83. // 替换和删除; 改变原数组;返回值是被删除/替换的内容
  84. var arr = [1,2,3,4,5,6,'a','b','c','d','e','f'];
  85. //var arr11 = arr.splice(5);//从索引为5开始截取到最后
  86. //console.log(arr);//[1, 2, 3, 4, 5]
  87. //console.log(arr11);//[6, "a", "b", "c", "d", "e", "f"]
  88. //var arr12 = arr.splice(2,5);//从索引为2开始截取5个元素
  89. //console.log(arr);//[1, 2, "b", "c", "d", "e", "f"]
  90. arr.splice(6,3,"aaa","bbb","ccc");//删除并替换
  91. console.log(arr);// [1, 2, 3, 4, 5, 6, "aaa", "bbb", "ccc", "d", "e", "f"]
  92. //数组.indexOf(元素); // 给元素,查索引(从前往后)
  93. // 数组.lastIndexOf(元素); // 给元素,查索引(从后往前)
  94. var arr = ["a","b","c","d","e","f"];
  95. console.log(arr.indexOf("e"));// 4
  96. console.log(arr.lastIndexOf("c"));//2
  97. */
  98. //数组迭代(遍历)
  99. /*数组.every() 对数组中每一项运行回调函数,如果都返回true,every返回true,如果有一项返回false,
  100. 则停止遍历 every返回false;不写默认返回false*/
  101. /*var arr = [1,2,3,4,5];
  102. arr.every(function(ele,index,arr){
  103. console.log(a);//元素
  104. console.log(b);//索引
  105. console.log(c);//数组本身
  106. });*/
  107. /*var arr = [123,234,567,768,987];
  108. //every返回一个bool值,全部是true才是true;有一个是false,结果就是false
  109. var bool = arr.every(function(ele,index,arr){
  110. if(ele>100){
  111. return true;
  112. }else{
  113. return false;
  114. }
  115. });
  116. console.log(bool);*/
  117. /*filter()对数组中每一项运行回调函数,该函数返回结果是true的项组成的新数组
  118. 新数组是有老数组中的元素组成的,return为ture的项;*/
  119. /*var arr = [123,123,45,678,54,678];
  120. var arr0 = arr.filter(function(element,index,array){
  121. if(element>100){
  122. return true;
  123. }else{
  124. return false;
  125. }
  126. });
  127. console.log(arr0);//[123, 123, 678, 678]*/
  128. //forEach() 和 for循环一样没有返回值
  129. /*var arr = [1,2,3,4,5,6,7];
  130. arr.forEach(function(element,index,array){
  131. console.log(element);
  132. console.log(index);
  133. console.log(array);
  134. });*/
  135. /*map()对数组中每一项运行回调函数,返回该函数的结果组成的新数组。
  136. return什么新数组中就有什么,不return返回undefined,对数组二次加工。*/
  137. /*var arr = [1,2,3,4,5,6,7,8];
  138. var newArr = arr.map(function(element,index,array){
  139. if(index==2||index==3){
  140. return element;
  141. }else{
  142. return element*2;
  143. }
  144. });
  145. console.log(newArr);// [2, 4, 3, 4, 10, 12, 14, 16]*/
  146. //some()对数组中每一项运行回调函数,如果该函数对某一项返回true,则some返回true; 像杀手,有一个成功,就胜利了!!!
  147. /*var arr = [1,2,4,5,6,7,8,10];
  148. var bool = arr.some(function(ele,index,array){
  149. if(ele%3==0){
  150. return true;
  151. }
  152. return false;
  153. });
  154. console.log(bool);*/
  155. //数组的清空
  156. /*1、arr.length = 0; 伪数组无法清空
  157. * 2、arr.splice(0); 伪数组中没有该方法
  158. * 3、arr = []; 可以操作伪数组(推荐)
  159. * 4、伪数组:就是长的像数组,但是没有数组的方法;也不能添加和删除元素;
  160. *
  161. * */
  162. //清空数组的案例
  163. /*function test(){
  164. //arguments.length = 0;//console.log(arguments);打印Arguments [0: 1, 1: 2, 2: 3, 3: 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
  165. //arguments.splice(0);//console.log(arguments);//Uncaught TypeError: arguments.splice is not a function
  166. arguments = [];//可以清空 返回空数组
  167. console.log(arguments);
  168. }
  169. test(1,2,3,4);*/
  170. //数组案例
  171. /*
  172. * ["刘备","张飞","关羽"] 1.将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
  173. * */
  174. //方法一
  175. /*var arr = ["刘备","张飞","关羽"];
  176. var arr1 = arr.join('|');
  177. console.log(arr1);//"刘备|张飞|关羽"*/
  178. //方法二
  179. /* var arr = ["刘备","张飞","关羽"];
  180. var separator = "|";
  181. var str = arr[0];
  182. for(var i = 1;i<arr.length;i++){
  183. str += separator+arr[i];
  184. }
  185. console.log(str);//"刘备|张飞|关羽"*/ //["c", "a", "z", "a", "x", "a"] 输出a所在的索引
  186. /*var arr = ["c", "a", "z", "a", "x", "a"];
  187. arr.forEach(function(element,index,array){
  188. if(element=="a"){
  189. console.log(index);//1,3,5
  190. }
  191. });*/
  192. /*判断特殊情况
  193. false == "" // true
  194. false == [] // true
  195. false == {} // false
  196. "" == 0 // true
  197. "" == [] // true
  198. "" == {} // false
  199. 0 == [] // true
  200. 0 == {} // false
  201. 0 == null // false
  202. null == undefined // true
  203. []==false // true
  204. [] == ![] // true
  205. */
  206. /*var a = "0";
  207. console.log(Boolean(a));//true
  208. var b = false;
  209. console.log(Boolean(b));//false
  210. console.log(a==b);//true == 比较的是强制类型转换后的值 === 是直接比较
  211. */
  212. // 数组.toString() 把数组变成字符串,去除[] 内容有逗号链接
  213. //let arr = [1,2,3,4,5,6,7,8,9];
  214. //console.log(arr.toString()); // '1,2,3,4,5,6,7,8,9' //数组.valueOf() 返回数组本身
  215. //let arr = [1,2,3,4,5,6,7,8,9];
  216. //console.log(arr.valueOf());//[1, 2, 3, 4, 5, 6, 7, 8, 9]
  217. //数组.join(参数) 数组中的元素可以按照参数进行连接变成一个字符串
  218. // var arr = ["aaa","bbb","ccc"];
  219. // console.log(arr.join("-"));// 'aaa-bbb-ccc'
  220. // console.log(arr.join(""));// 'aaabbbccc'
  221. // console.log(arr.join(" "));// 'aaa bbb ccc'
  222. // console.log(arr.join("~"));// 'aaa~bbb~ccc'
  223. //sort() 用回调函数进行升序和降序的排列 箭头函数
  224. //var arr = [12,35,24,56,42,8,5,68,86];
  225. //升序
  226. //arr.sort((a,b) => a-b);
  227. //console.log(arr);//[5, 8, 12, 24, 35, 42, 56, 68, 86]
  228. //降序
  229. //arr.sort((a,b) => b-a);
  230. //console.log(arr);
  231. </script>
  232. </html>

JavaScript数组知识的更多相关文章

  1. JavaScript数组知识网络

    JavaScript数据类型 基本数据类型 Boolean Null Number String Symbol Undefined 对象数据类型Object Build-in object Array ...

  2. javascript基础知识-数组

    1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...

  3. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  4. 深入浅出 JavaScript 数组 v0.5

    有一段时间不更新博客了,今天分享给大家的是一篇关于JS数组的,数组其实比较简单,但是用法非常灵活,在工作学习中应该多学,多用,这样才能领会数组的真谛. 以下知识主要参考<JS 精粹>和&l ...

  5. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  6. 七个开法者经常忽略或误用的JavaScript基本知识

    七个开法者经常忽略或误用的JavaScript基本知识 翻译自 http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-ar ...

  7. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

  8. 【转载】JavaScript基础知识体系

    前言 最近总是有一种感觉,对于知识没有积淀,很多时候都是忘记了哪里就去查一下,比如JS这种语言,很是浪费时间,如果能够把这些知识形成知识体系塞进大脑,做到即用即取就好了,那么就可以借助思维导图来帮助我 ...

  9. Javascript数组系列五之增删改和强大的 splice()

    今天是我们介绍数组系列文章的第五篇,也是我们数组系列的最后一篇文章,只是数据系列的结束,所以大家不用担心,我们会持续的更新干货文章. 生命不息,更新不止! 今天我们就不那么多废话了,直接干货开始. 我 ...

随机推荐

  1. hdu 1208 Ignatius and the Princess III 划分数,dp

    题目 题意:给你一个数字n,求将其划分成若干个数字相加总共有多少种划分数: <span style="font-size:24px;">#include <ios ...

  2. APIView源码与Request源码分析

    一.APIView源码分析 1.安装djangorestframework 2.使用 drf是基于cbv view的封装,所以必须写cbv ①第一步:写视图,必须写cbv 路由配置: from res ...

  3. Vue组件使用

    一.组件概念 有html模板,有css样式,有js逻辑的集合体 每一个组件都是一个vue实例 每个组件均具有自身的模板template,根组件的模板就是挂载点 每个组件模板只能拥有一个根标签 子组件的 ...

  4. [CF666E]Forensic Examination:后缀自动机+线段树合并

    分析 用到了两个小套路: 使用线段树合并维护广义后缀自动机的\(right\)集合. 查询\(S[L,R]\)在\(T\)中的出现次数:给\(T\)建SAM,在上面跑\(S\),跑到\(R\)的时候先 ...

  5. Apicloud_(问题)P54提示错误:Uncaught SyntaxError: Unexpected token ) at main.html : 117

    <30天App开发从0到1:APICloud移动开发实战>第54页 打开main.html,在apiready中添加一段代码 api.addEventListener({ name: 'c ...

  6. Pandas使用groupby()时是否会保留顺序?

    PythonPandas:使用groupby()和agg()时是否保留了顺序? 看到这个增强问题 简短的答案是肯定的,groupby会保留传入的顺序.你可以用你的例子来证明这一点: df = pd.D ...

  7. CommandLineRunner and ApplicationRunner

    1. Run spring boot as a standalone application (non-web) <?xml version="1.0" encoding=& ...

  8. shiro的Quickstart

    /** * Simple Quickstart application showing how to use Shiro's API. * * @since 0.9 RC2 */ public cla ...

  9. MQ常问的问题

    目录 1:什么场景使用了mq?直接掉接口不行吗? 2:用消息队列都有什么优点和缺点? 3:Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么区别? 4:那你们是如何保证消息队列 ...

  10. 为什么重写了equals(),还要重写hashCode()?

    解决这个问题得先明白:hashCode 方法用于散列集合的查找,equals 方法用于判断两个对象是否相等. 第一步:具体背景(没有背景的讨论就是在耍流氓) 以HashMap中put方法为背景 第二步 ...