JavaScript数组的基本操作
数组的创建方式:
方式一:构造函数构建数组
var arr = new Array ( ); 如果传入的参数为一个数字,代表数组的长度,不包含内容
// 可以传入字符串和数字,用逗号隔开,作为数组中的内容。
方法二:字面量方法创建数组 (一般采用该方法)
var arr = [ ]; // 可以直接写入内容。用逗号隔开
数组的基本操作方法:
目录:
- push
- pop
- unshift
- shiift
- concat
- join
- splice
- slice
- indexOf
- lastIndexOf
push()方法
var len = arr.push( )
在数组尾部添加一个或多个新元素,并且返回数组的新长度。
原生JS重构 push方法

1 function push(arr) {
2
3 for (i = 1; i < arguments.length; i++) {
4
5 arr[arr.length] = arguments[i]; //数组的尾部添加传入进来的参数
6
7 }
8
9 return arr.length; //返回数组的长度
10
11 }
12
13 var num = push(arr, 7, 8, 9)
14
15 console.log(arr, i)

pop()方法
var itme = arr.pop( )
删除数组尾部的一个或者多个元素,并且返回被删除的这个元素
原生JS重构 pop方法

1 function pop(arr) {
2
3 var num = arr[arr.length - 1]; //保存数组最后一个元素
4
5 arr.length--; //删除最后一个元素
6
7 return num //返回删除的元素
8
9 }
10
11 pop(arr)

unshuift( ) 方法
//将一个或者多个新元素添加在数组的最前面,返回数组的新长度
var len = arr.unshift( )
原生JS重构 unshift方法

1 function unshift(arr) {
2
3 var len = arguments.length - 1; //定义需要添加元素的长度,
4
5 for (var i = arr.length - 1; i >= 0; i--) { //使数组整体向后移动len个单位
6
7 arr[i + len] = arr[i];
8
9 // console.log(arr)
10
11 }
12
13 for (var j = 1; j < arguments.length; j++) { // 把传入的参数按顺序放入数组的前头
14
15 arr[j - 1] = arguments[j]
16
17 console.log(arr)
18
19 }
20
21 return arr.length //返回新数组的长度
22
23 }
24
25 unshift(arr, 9, 8, 7)
26
27

shift( ) 方法
// 删除数组的第一个元素,并且返回该元素。
var itme =arr.shift( )
原生JS重构 shift方法:

1 function shift(arr) {
2
3 var itme = arr[0]; //获取第一个元素
4
5 // console.log(itme)
6
7 for (i = 0; i < arr.length; i++) { //把数组整体向前移动一个长度
8
9 arr[i] = arr[i + 1]
10
11 console.log(arr)
12
13 }
14
15 return itme //返回数组的第一个元素
16
17 }
18
19 console.log(shift(arr))

concat ()方法
var arr1 = arr.concat ( 10,11,12)
var arr2 =arr.concat ( arr1 )
//给原数组添加新元素或连接多个数组,复制给一个新数组
原生JS重构 concat方法:

1 function concat(arr) {
2
3 var array = []; //定义一个空数组 用来复制新数组
4
5 var num = 0; //新数组的下标
6
7 for (var i = 0; i < arr.length; i++, num++) { //把第一个数组复制到新数组中
8
9 array[num] = arr[i]
10
11 }
12
13 for (var j = 1; j < arguments.length; j++, num++) { //把参数复制到新数组中
14
15 if (arguments[j].constructor === Array) { //判断参数是否是数组类型
16
17 for (var m = 0; m < arguments[j].length; m++, num++) { //遍历参数数组,添加到新数组中
18
19 array[num] = arguments[j][m]
20
21 }
22
23 num-- // 由于上面两次循环 新数组下标添加了2次, 所以在这减少一次
24
25 } else { //参数不是数组类型,把参数添加到新数组中
26
27 array[num] = arguments[j]
28
29 }
30
31 }
32
33 return array //返回新数组
34
35 }

join ()方法
var str = arr.join( )
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。若没有填入参数,默认用逗号隔开
splice ()方法
arr.splice (从什么位置开始,删除多少个元素,添加的元素…… )
//给数组中添加,删除,替换一个或者多个元素,返回被删除元素组成的数组
var arr1 =arr.splice( ) //创建一个空数组arr1
var arr1 =arr.splice( 0 ) 删除arr所有元素 ,将所有元素传递给arr1、
var arr1 =arr.splice( -1)传入的参数是负数的时候,表示倒数第几位开始。
var arr1 =arr.splice( 2,0,12,14)表示从第二位开始,不删除元素,插入12和14
//(正数是向后插入元素, 负数是向前插入元素)
slice()方法
功能:截取指定位置的数组,并且返回截取的数组,不会改变原数组
参数:slice(startIndex, endIndex)
注意:可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end),省略表示到最后一位;
start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。
IndexOf()方法
功能:根据指定的数据,从前往后,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找
lastIndexOf( )方法
功能:根据指定的数据,从后往前,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
JavaScript数组的基本操作的更多相关文章
- JavaScript 数组基本操作
简介 数组操作无论是在JavaScript中还是在其他语言中都是很常见.经常会用到的,现在我把JavaScript 数组基本操作整理一下,供大家参考学习.里边包含我自己的见解以及案例,希望能够帮助大家 ...
- 舌尖上的javascript数组和字符串基本操作
Javascript数组基本操作 Javascript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数,然而这些数字索引在内部被转换为字符串类型,这是因为javascrip ...
- Javascript中数组的基本操作
删除数组指定的某个元素 via首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) ...
- javascript数组浅谈1
最近心血来潮要开始玩博客了,刚好也在看数组这块内容,第一篇就只好拿数组开刀了,自己总结的,有什么不对的地方还请批评指正,还有什么没写到的方面也可以提出来我进行完善,谢谢~~ 首先,大概说说数组的基本用 ...
- Javascript数组操作
使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...
- Javascript数组操作(转)
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...
- JavaScript 数组
JavaScript 数组 简介:数组是值的有序集合,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改. 一:创建数组 ...
- 也谈面试必备问题之 JavaScript 数组去重
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法
var questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...
随机推荐
- Yuchuan_Linux_C编程之六 Makefile项目管理
一.整体大纲 二.makefile的编写 一个规则 两个函数 三个变量 1. 一个规则 三要素:目标, 依赖, 命令 目标:依赖 命令: 第一条规则是用来生成终 ...
- Web安全相关(一):CSRF/XSRF(跨站请求伪造)和XSS(跨站脚本)
XSS(Cross Site Script):跨站脚本,也就是javascript脚本注入,一般在站点中的富文本框,里面发表文章,留言等表单,这种表单一般是写入数据库,然后再某个页面打开. 防御: 1 ...
- MapReduce 简单数据统计
1. 准备数据源 摘录了一片散文,保存格式为utf-8 2. 准备环境 2.1 搭建伪分布式环境 https://www.cnblogs.com/cjq10029/p/12336446.html 上传 ...
- 一起了解 .Net Foundation 项目 No.18
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Protobuild Pr ...
- Vue2.0 【第一季】第3节 v-for指令:解决模板循环问题
目录 Vue2.0 [第一季] 第3节 v-for指令:解决模板循环问题 第三节 v-for 指令 一.基本用法: 二.排序 三.对象循环输出 Vue2.0 [第一季] 第3节 v-for指令:解决模 ...
- Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统
对于大多数互联网公司,基于日志分析的WEB入侵检测分析是不可或缺的. 那么今天我就给大家讲一讲如何用graylog的extractor来实现这一功能. 首先要找一些能够识别的带有攻击行为的关键字作为匹 ...
- turtle学习笔记续集
turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟 ...
- Vulnhub 靶场 Os-hackNos WP
About Os-hackNos 描述 Difficulty : Easy to Intermediate Flag : 2 Flag first user And second root Learn ...
- Natas16 Writeup(正则匹配,php命令执行)
Natas16: 源码如下 <? $key = ""; if(array_key_exists("needle", $_REQUEST)) { $key ...
- 用angularjs写的一个简单的grid table
效果图 用到的工具 1.需要先安装nodejs打开直接安装就好了 2.安装完成后使用 淘宝的源 国内速度快 安装方法 npm install -g cnpm --registry=https://re ...