数组

数组的四个常用方法

push()

  • 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度
  • 可以将要添加的元素作为方法的参数传递,这些元素将会自动添加到数组的末尾

pop()

  • 该方法可以删除数组的最后一个元素,并将被删除的元素返回

unshift()

  • 向数组开头添加一个或多个元素,并返回新的数组长度
  • 添加元素后,其他元素的索引会相应调整

shift()

  • 可以删除数组的第一个元素,并将其作为返回值返回

数组的遍历

  • for 循环
var arr = ["张三","李四","王五","马六"];

for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
  • forEach *
//forEach()  不支持IE9以下浏览器
var arr = ["张三","李四","王五","马六"]; /*
* forEach()方法需要一个函数作为参数
* - 像这种函数,由我们创建但不是我们调用的,我们称之为回调函数
* - 数组中有几个元素就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式
* 传递进来,我们可以定义形参,来读取这些内容
* - 浏览器会在回调函数中传递三个参数:
* 第一个参数:当前正在遍历的元素
* 第二个参数:当前正在遍历的元素的索引
* 第三个参数:当前正在遍历的数组
*/ arr.forEach(function(value, index, obj){
console.log(value);
});

slice()和splice()

slice()

  • 可以用来从数组中提取指定元素
  • 参数:截取开始的位置索引,截取结束的位置索引 (前闭后开,第二个参数可以不写,默认取到最后一个元素)
  • 索引可以是负值 -1为最后一个元素

splice()

  • 删除元素并向数组添加新元素
  • 将指定元素从原数组中删除并返回
  • 参数:

    第一个:开始位置索引

    第二个:删除的数量

    第三个及以后:

    可以传递一些新的元素,这些元素会自动插入到开始索引位置之前

数组去重

//创建一个数组
var arr = [1,2,3,2,1,3,4,2,5]; //数组去重1
//获取数组中的每一个元素(遍历)
for(var i=0; i<arr.length; i++){
//遍历当前元素后的所有元素
for(var j=i+1; j<arr.length; j++){
//判断两个元素值是否相等
if(arr[i]==arr[j]){
//相等则证明出现重复,删除j对应元素
arr.splice(j,1);
//当删除了当前j所对应元素后,后面的元素会自动补位
//导致j新对应的元素无法进行比较,如果该元素依旧重复则会遗漏
//故使j自减
j--;
}
}
} console.log(arr);

数组其他方法

/*	1
* concat()可以连接两个或多个数组,并将新的数组返回
* - 该方法不会对原数组产生影响
* - 参数也可以为元素
*/ /* 2
* join()方法可以将数组转换为一个字符串
* - 该方法不会对原数组产生影响,而是将转换后的结果返回
* - 可以指定一个字符串作为参数,它将会作为数组元素的连接符,不填则默认为","
*/ /* 3
* reverse()方法可以用来反转数组
* - 会直接操作原数组
*/ /* 4
* sort()用来对数组元素进行排序
* - 改变原数组
* - 默认按照Unicode编码进行排序,即使对纯数字数组排序一会按照Unicode编码排序
* - 我们可以自己指定排序规则,在sort()添加一个回调函数
* 回调函数中需要定义两个形参
* 浏览器将会分别使用数组中的元素作为实参去调用回调函数
* - 浏览器会根据回调函数的返回值来决定元素的顺序
* 如果返回一个大于0的值,则元素交换位置
* 如果返回一个小于0的值,则元素位置不变
* 如果返回一个0,则认为两个元素相等,不交换位置
*/ var arr = [5,4,2,3,1]; arr.sort(function(a,b){
return a - b; //升序
//return b - a; //降序
});

JavaScript数组的方法 | 学习笔记分享的更多相关文章

  1. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  2. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  3. javascript数组原型方法

    1.javascript数组原型方法. <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  4. JavaScript数组归并方法reduce

    示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...

  5. 学习笔记分享之汇编---3. 堆栈&标志寄存器

    前言:   此文章收录在本人的<学习笔记分享>分类中,此分类记录本人的学习心得体会,现全部分享出来希望和大家共同交流学习成长.附上分类链接:   https://www.cnblogs.c ...

  6. JavaScript——数组——slice方法

    JavaScript--数组--slice方法 JavaScript中的slice方法类似于字符串的substring方法,作用是对数组进行截取. slice方法有两个参数,indexStart 和 ...

  7. 《JavaScript权威指南》学习笔记 第四天 数组

    昨天学习了js的对象,了解了js的原型链.在js里面万事万物皆对象,只不过一些原始类型要经过包装对象的包装才能暂时变为对象.数组的本质是什么呢?数组其实就是一组数,也就是链表.每个数只是这个链表上的一 ...

  8. 《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

    Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比.Javascript数组中的元素不必为同样的数据类型,能够在数组每一个元素上混合使用数字.日期 ...

  9. 《JavaScript语言精粹》学习笔记

    一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ( ...

随机推荐

  1. 字节缓冲流 ( BufferedInputStream / BufferedOutputStream)

    package com.sxt.reader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; imp ...

  2. iOS中几种数据持久化方案:我要永远地记住你!

    http://www.cocoachina.com/ios/20150720/12610.html 作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启 ...

  3. Flask——向博客文章中添加图片

    未添加图片样式 添加图片设置: 1.允许渲染img标签 在数据库文章模型allowed_tags中添加img 2.给clean函数加个参数attributes=attrs, attrs = { '*' ...

  4. Linux服务部署:nginx服务 nfs服务

    nginx服务 源码安装: yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -ylsta ...

  5. 一线实践 | 借助混沌工程工具 ChaosBlade 构建高可用的分布式系统

    在分布式架构环境下,服务间的依赖日益复杂,可能没有人能说清单个故障对整个系统的影响,构建一个高可用的分布式系统面临着很大挑战.在可控范围或环境下,使用 ChaosBlade 工具,对系统注入各种故障, ...

  6. day7_python之面向对象高级-反射

    反射:通过字符串去找到真实的属性,然后去进行操作 python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 1.两种方法访问对象的属性 cl ...

  7. 认识web前端开发

    web前端开发 1.web即web系统,是以网站的形式呈现,通过浏览器的访问来实现一定的功能的系统. 2.什么是前端开发? 前端开发是创建web页面或app等前端界面呈现给用户的过程.通过html.c ...

  8. MyBatis-使用XML或注解的简单实例

    一.导入jar包 <dependency> <groupId>junit</groupId> <artifactId>junit</artifac ...

  9. ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel

    当在jupyter下使用parser.parse_args()出错则改换为parser.parse_known_args()[0]其效用是差不多的,至于为什么出现错误,我也不知道…

  10. php表单加入Token防止重复提交的方法分析

    http://www.jb51.net/article/94395.htm 这篇文章主要介绍了php表单加入Token防止重复提交的方法,结合实例形式分析了Token防止重复提交的原理与使用技巧,需要 ...