数组:存储一组数据

数组的创建:

  • 通过构造函数创建:

    var myarry = new Array()  ;//创建一个空数组

注意:Array()  传参可以为多类型,若参数只有一个数值型数值n,则表示设置数组长度length=n;

  • 浏览器封装

    var myarry = [];     //创建一个空数组

数组的访问:

  • 通过下标索引访问 myarry[索引号]
  • for 循环访问(首选)  返回索引号为数值型
  • for ... in  循环访问   返回索引号为字符型
  • forEach()遍历数组且无返回值
  • //forEach()遍历数组且无返回值
    arryobj.forEach(  function(形参1,形参2,形参3){形参1    //数组中的元素;形参2  // 数组元素对应下标;形参3   //原数组}) ;                
  • var newarry = arryobj.map(function(形参1,形参2,形参3){

形参1    //数组中的元素;

形参2  // 数组元素对应下标;

形参3   //原数组

return item}) ;  具有数组形式的返回值   映射遍历数组

  • arry.reduce(function(  val , item ,i  ,  list  ){

    • val   初始值 当参数2省略时,初始值是下标为0的值; 当参数2设置时,val是参数2的值
    • item 当前元素值;
    • i  当前值的下标;
    • list 原数组;
  • },参数2)
  • 过滤内容:filter( function (  item ,  i  ,  list  ){过滤条件;})   返回值:满足过滤条件的新数组。
var myarry = [1,2.3,1.2,3.1,3];// for(var i=0;i<myarry.length;i++){//   console.log(myarry[i]);// }// for(var i in myarry){//   console.log(myarry[i]);// }myarry.forEach(function(i,v,list){console.log(i);console.log(v);console.log(list);})

数组对象方法:

  1. 删除最后一个元素: pop();  返回值为删除的最后一个元素。
  2. 删除数组的第一个元素:shift();   返回删除的元素。
  3. 向数组尾部添加元素 :push(添加元素1,元素2,,,,);  返回添加元素后新数组的长度。
  4. 向数组头部添加元素:unshift(添加元素1,元素2,,,,);返回添加元素后新数组的长度。
  5. 添加/删除元素  : splice(开始索引号,删除个数量,添加的新项目);  返回值 ——>删除元素组成的数组【】
  6. 排序:sort()    无参时默认按照unicode 编码顺序排序;传参时,需传入匿名函数function(a,b){return  a-b;}升序 ;      function(a,b){return  b-a;}降序 。
  var myarry = [1,2.3,1.2,3.1,3];myarry.sort();console.log(myarry);   //[1, 1.2, 2.3, 3, 3.1]// 升序myarry.sort(function(a,b){return a-b;});console.log(myarry);  //[1, 1.2, 2.3, 3, 3.1]//降序myarry.sort(function(a,b){return b-a;});console.log(myarry);   //[3.1, 3, 2.3, 1.2, 1]
  • 倒置:   reverse()     数组元素倒序 返回新数组
  • join(分隔符)  把数组内的元素拼接成一个字符串,根据分隔符进行连接,不传入分隔符默认按照  ,  进行连接  ,返回值 ——> 字符串
  • concat()  字符串 数组连接
  • slice(开始,结束)   开始参数  必须要小于等于  结束参数  字符串数组均可使用

 数组数据去重的三种方法:

//方法一:借助空数组
//思想原理:1.创建一个空数组//                  2.遍历查找原数组内的元素  是否在  新数组内存在,若不存在将该元素加入新数                       组内//                 3.遍历结束,新数组为没有重复元素的元素组副本;
function noreapt(arr){var newarry = [];for(var i = 0; i < arr.length; i++){if(newarry.indexOf(arr[i]) == -1)   //新数组内查找不到该元素{newarry.push(arr[i]);            //将元素添加入新数组}}return newarry;}var arry = [1,1,2.1,12,3,3,32.1,2];var a = noreapt(arry);    //调用console.log(a);        //[1, 2.1, 12, 3, 32.1, 2]//方法二:重复元素进行数组元素删除操作for(var i = 0;i<arry.length;i++){for(var j = i+1 ;j<arry.length;j++){if(arry[i] == arry[j]){arry.splice(j,1);       //删除相同的数组元素,后面的元素下标一次减一j--;                       //j也相应减一,}}}//方法三:借助过滤方法filter()
arry.filter(function(item,i){var a = arry.indexOf(item);return a === i;         //返回满足 元素第一出现的位置和下标位置相同的元素,即后面重复出现的不返回;
});

两组数组过滤出满足双方关键字的选项

// 过滤得到匹配keys数组的新数组  注:findIndex方法 获取数组中第一个值满足条件的索引Array.prototype.filterByKey = function (keys, keyName = 'id') {return keys && keys.length? this.filter(item => keys.findIndex(key => key == item[keyName]) !== -1): []}

JavaScript 学习笔记——基础篇(3)--数组相关推荐

  1. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  2. MySQL学习笔记-基础篇2

    MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...

  3. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  4. JavaScript学习笔记(六)--数组

    数组初始化 我们都知道,数组是用于保存多个值的集合,在数组中,值被称为元素,值可以是任意的数据类型.在Javascript中,创建数组通常有两种方式:字面量和构造函数. 字面量 数组的元素可以是任意的 ...

  5. JavaScript学习笔记(三)——数组

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  6. extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs

    昨天刚接触到Extjs,简单写了篇学习笔记,今天继续. 天介绍一下Ext中组件举几个简单的例子做说明.注意:文章内容有些摘自本人学习过程中看到的资料. Ext2.0对框架进行了非常大的重构,其中最重要 ...

  7. C++ 学习笔记----基础篇

    (一)类和抽象数据类型   1.通过类实现的接口(公有和私有)可实现信息隐藏.实现对数据的封装等: 2.抽象数据类型(ADT:Abstract Data Type):当一个数据类型仅暴露公有接口,而将 ...

  8. java学习笔记-基础篇

    Java基础篇 1-12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28-31异常 1-12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  9. 易语言学习笔记——基础篇

    易语言学习笔记20180710 一. 易语言的数据类型可以分为基本数据类型和特殊数据类型 1.     其中基本数据类型分为: ①   数值型 ②   逻辑型 ③   日期时间型 ④   文本型 ⑤  ...

最新文章

  1. 简明Linux命令行笔记:dmesg
  2. 水凝胶 静电纺丝_吉林大学:静电纺丝与水凝胶制备技术结合构建高强度光控智能水凝胶驱动器...
  3. 什么是StackOverflowError?
  4. 在CentOS下安装WebBench进行web 性能测试
  5. 《研磨设计模式》chap16 模板方法模式
  6. Intel Realsense D435 python 从深度相机realsense生成pcl点云
  7. async function_理解 Iterator, Generator 和 Async/Await
  8. nand ubi -1 nand基础
  9. Asp.net2.0工具包AjaxControlToolkit下载和安装
  10. 利用Maven逆向工程生成mybatis映射文件
  11. 【项目合作】移动端人体姿态估计
  12. 解决SVN汉化不成功问题,下载历史版本
  13. 什么是老毛子固件 padavan中文叫什么
  14. AV1代码学习:av1_encode_strategy、denoise_and_encode、av1_encode函数
  15. Java实现百度贴吧自动签到器
  16. Qt中文编程遇C2001错误,提示“常量中有换行符”
  17. Ext Gwt 实用例子--类似meebo的聊天界面
  18. 理解CTP/XTP柜台对接
  19. 电脑alt+tap切换屏幕卡顿解决
  20. securecrt能输入命令吗?

热门文章

  1. C# 通过搜狐微博api远程更换壁纸
  2. html单选按钮默认选择
  3. 【统计学】标准差,标准误解释与标准误分母为根号n的原因
  4. Halcon之Blob分析
  5. 少年用计算机怎么弹歌谱,少年(和弦功能谱 简谱歌词)-老杨教吉他
  6. 李铁:中国的药品行业,说穿了就是骗子企业
  7. 无频闪护眼灯哪个好?防蓝光无频率闪的护眼台灯推荐
  8. 百度核心竞争力分析-天蝎座的李彦宏
  9. 产品经理经常遇到的诸多问题(一)
  10. 好香呀,这是在虚拟环境中闻到的