javascript 数组总结
数组的创建:
数组可以使用Array构造函数来创建,或者使用[]快速创建。
1. Array构造函数创建数组:
无参数,创建空数组:
var arry = new Array();
参数为一个数字,指定数组长度
var array = new Array(3);
带初始化数据,创建数组并初始化参数数据
var array = new Array(1,'34','ceshi')
2. "[]"创建数组:
使用[],创建空数组:
var array = [];
传入初始化数据
var array = [1,'34','ceshi'];
判断数组类型:
数组是继承自Object的原型,typeof Array 返回值为'objiect'。如果想进一步判断就需要用以下方法:
对于一个网页或一个全局作用域而言,使用instanceof操作符可以做到:
var array = [];
if(array instanceof Array){
alert('判断成功')
}
对于instanceof的局限性,为了解决这个问题,ECMAScripts5新增Array.isArray(value)方法:
var arr = [];
if(Array.isArray(arr)){
alert('判断成功')
}
数组的一些方法:
* 添加元素方法:push() 、 unshift()、splice()
1.push(item1,item2,...): 往数组的末尾添加一个或多个元素,并返回数组新的长度
var arr = [1,2,3];
arr.push(4,5);
alert(arr);//1,2,3,4,5
2. unshift(item,item2,...): 往数组的头部添加一个或多个元素,并返回数组新长度
var arr = [1,2,3];
arr.unshift(4,5);
alert(arr);//4,5,1,2,3
3. splice(index,0,item1,item2,...):将一个或者多个元素插入到数组中指定的index位置,插入位置的元素自动后移
var arr = [1,2,3];
arr.splice(1,0,4,5); //在第二个个元素位置添加4,5。
alert(arr)//1,4,5,2,3
* 删除元素方法: pop() 、shift()、splice()
1.pop(): 删除尾部元素
var arr = [1,2,3];
arr.pop();
alert(arr);//1,2
2.shift(): 删除头部元素
var arr = [1,2,3];
arr.shift();
alert(arr);//2,3
3.splice(index,count): 从指定位置index开始删除,删除指定的count个元素。
var arr = [1,2,3,4];
var a = arr.splice(2,2); //从第三个元素开始,删除两个元素,并返回要删除的元素
alert(a);//3 ,4
alert(arr)//1,2
* splice 可以实现删除元素或者添加新元素
splice方法参数描述:
1.第一个参数:开始删除元素的索引值
2.第二个参数:表示要删除元素的个数
3. 第三个参数(以及第三个参数后面的所有参数):表示要插入的新元素(如果只有两个,可以忽略。表示只删除元素不添加元素)
下面列出几个例子:
1.删除数组的某一个元素: array.splice(index,1)
var arr = [1,2,3];
var a = arr.splice(2,1); //删除第三个元素,并返回要删除的元素
alert(a);//3
alert(arr)//1,2
2.在某个元素后添加元素:array.splice(index,0,value,....)
var arr = [1,2,3];
arr.splice(1,0,4,5); //在第一个元素后面添加4,5
alert(arr)//1,4,5,2,3
3. 删除某个元素,并且添加新的元素: array.splice(index,index,value,...)
var arr = [1,2,3];
var a = arr.splice(1,2,4,5); //从第二个元素开始删,删除两个元素,然后在原第二个元素的位置添加两个元素4,5
alert(a)//2,3
alert(arr)//1,4,5
* 将数组转化成字符串: join()
join(separator):将数组中的每个元素值两在一起,中间用指定的separator隔开;如果没有设置separator,默认用逗号隔开
var arr = [1,2,3,4];
var arr2 = [1,2,3,4];
var str = arr.join('_');
var str2 = arr.join();
alert(str);//1_2_3_4
alert(str2);//1,2,3,4
* 数组的截取:slice()
slice(indexstart,indexend): 从索引indexstart开始截取,直到索引indexend之前结束,索引end元素不包括;如果不设置indexend,则表示从indexstart开始一直截取到最后。
var arr = [1,2,3,4,5];
var newArr = arr.slice(2,3)//截取第三个元素
var newArr2 = arr.slice(2,4)//从第三个元素开始到第四个元素
var newArr3 = arr.slice(1)//从第二个元素开始截取直到最后一个元素
alert(newArr);//3
alert(newArr2);//3,4
alert(newArr3);//2,3,4,5
* 数组合并:concat()
concat(item1,item2,....): 将多个数组或者字符串组合为一个数组,并返回一个新的数组。如果没有参数,就相当于重新copy一个数组。
var arr = [1,2,3,4,5];
var arr2 = [6,7,8,9];
var newArr = arr.concat(4,5);
var newArr2 = arr.concat(arr2);
var newArr3 = arr.concat(arr2,[10,11]);
var newArr4 = arr2.concat();
alert(newArr);//1,2,3,4,5,4,5
alert(newArr2);//1,2,3,4,5,6,7,8,9
alert(newArr3);//1,2,3,4,5,6,7,8,9,10,11
alert(newArr4)//6,7,8,9
* 数组的拷贝:slice()、concat()
1.slice(0):返回一个新的数组,注:是一个新的数组不是指向
var arr = [1,2,3,4];
var newarr = arr.slice(0);
alert(newarr)//1,2,3,4
2.concat():返回一个新的数组,注:是一个新的数组不是指向
var arr = [1,2,3,4];
var newarr = arr.concat();
alert(newarr)//1,2,3,4
* 数组排序:reverse()、sort()
1.reverse():反转元素
var arr = [1,2,3,4,5];
arr.reverse();
alert(arr)// 5,4,3,2,1
2.sort():对数组元素排序,
按照字母顺序排列,即按照ASCII进行生序排列
var arr = ['c','d','abc','bf','e'];
arr.sort();
alert(arr)// 'abc','bf','c','d','e'
如果要排序数值,就需要使用一个排序函数
//排序函数
function sortNumber(a,b){
return a-b;
}
var arr = [1,100,3,21,101,6];
arr.sort(sortNumber);
alert(arr)// 1,3,6,21,100,101
javascript 数组总结的更多相关文章
- 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 ...
- JavaScript 数组 length 属性获取数组长度或设置数组元素的数目
JavaScript 数组 length 属性 JavaScript 数组 length 属性可返回或设置或组中元素的数目,语法如下: array_object.length 利用 length 属性 ...
- 【读书笔记】-- JavaScript数组
数组是一段线性分配的内存,它通过整数计算偏移并访问其中的元素.大多数的语言都会要求一个数组的元素是相同类型,但JavaScript数组可以包含任意类型. var misc = ['string', n ...
- 什么才是正确的javascript数组检测方式
前面的话 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具——typeof ...
- javascript数组对象排序
javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的s ...
- javascript数组的知识点讲解
javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...
随机推荐
- poj2240 Arbitrage
思路: 有向图判负环. 实现: (1)spfa #include <iostream> #include <map> #include <string> #incl ...
- 神奇的Object.defineProperty
vue.js和avalon.js 都是通过它实现双向绑定的. 对象是由多个名/值对组成的无序的集合.对象中每个属性对应任意类型的值.定义对象可以使用构造函数或字面量的形式: var obj={}; o ...
- Laravel 网站项目目录结构规划
最近在用Laravel这个PHP框架搭网站,大致了解这个框架的目录结构之后感觉学到了不少东西. 首先安装好包管理器: PHP部分当然用composer,安装在全局目录下方便一点. 前端部分,我没有选择 ...
- LockDemo 锁对象
class Resource { private boolean flag = false; private String name; private int count; //资源锁 Lock lo ...
- 个人作业Alpha项目测试
这个作业属于哪个课程 软件工程原理 这个作业要求在哪里 作业要求 团队名称 TEAMPANTHER 这个作业的目标 每个同学必须选取非自己所在团队的3个项目进行测试. 在你所测试的项目的Alpha发布 ...
- 解决[disabled]="true"与formControlName冲突
import { FormBuilder } from '@angular/forms'; form; constructor(private fb: FormBuilder) { this.form ...
- 写给新手的十一条 Docker 守则
很多人最终还是决定使用 Docker 解决问题. Docker 的优点很多,比如: 一体化——将操作系统.库版本.配置文件.应用程序等全部打包装在容器里.从而保证 QA 所测试的镜像 (image) ...
- react 返回上一页
import * as React from 'react' import { Layout } from 'antd'; import creatHistory from 'history/crea ...
- 框架学习八:二维码(Zxing)
本文转自夏神:http://blog.csdn.net/xiaanming/article/details/10163203 一.用什么 二维码扫描用的google的开源框架Zxing. 二.下载 地 ...
- VM 安装ubuntu16.04简易方法
在已经安装好VM10虚拟机后 首先文件—>新建虚拟机—>典型(标准) 选择稍后安装操作系统,后续要使用的是已经下载好的ubuntu16.04镜像 选择操作系统是linux ,版本是ub ...