IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript数组 -> 正文阅读

[JavaScript知识库]JavaScript数组

1. 数组作用

ECMAScript数组是有序列表,是存放多个值的集合。

每一项都可以保存任何类型的数据。

数组的大小是可以动态调整。

数组的length属性:可读可写,可以通过设置length的值从数组的末尾移除项或向数组中添加新项。

2. 数组创建

  • 字面量创建
// 可以接收任何类型的数据当做数组的元素
var arr = [12,name,true,"larry",{},function(){},[],null];
// 获取数组的长度
console.log(arr.length);//arr.length
  • 构造函数创建
var names = new Array();   // 等价于 var names = []; 
// 如果一个参数,并且是number类型的整数,则代表的是数组的长度。如果是number类型的小数,则报错。如果是其他类型,则当做数组元素放进去。
//var arr = new Array(length); 创建一个长度为length的数组
var names = new Array(3);  
// 创建一个包含3个元素的数组 var arr = [undefined,undefined,undefined];
//var ages = new Array(2.4);//Error: Invalid array length
var ages = new Array("2.4");
var names = new Array('zhangsan')  //创建一个包含1个元素的数组,该元素的值为'zhangsan'
// 两个参数或者多个参数,当做数组元素放进去
var names = new Array('zhangsan','lisi')//创建一个数组,数组中的元素使用实参初始化

3. 数组访问

访问数组元素:数组变量名[索引]

如果索引小于数组的长度,返回对应项的值;如果索引大于等于数组的长度,返回undefined;

如果给索引大于等于数组的长度的位置设置了值,数组自动增加到该索引值加1的长度;

length+N 或 length-N 开辟新的内存空间 或 数组元素的删除

4. 数组API

4.1 数组序列化

toString() 在默认情况下都会以逗号分隔字符串的形式返回数组项

join() 使用指定的字符串用来分隔数组字符串

var arr = [1,5,2,8,10,{a:1}];
console.log(arr);  // [ 1, 5, 2, 8, 10, { a: 1 } ]
console.log(arr.toString());  // '1,5,2,8,10,[object Object]'
console.log(arr.join(""));  // '152810[object Object]'
console.log(arr.join("-"));  // '1-5-2-8-10-[object Object]'

// 数组也可以使用序列化工具进行转换,并且,数组也存在深拷贝浅拷贝的现象,也可以使用序列化工具解决此问题
var result = JSON.stringify(arr);
console.log(result);  // '[1,5,2,8,10,{"a":1}]'
console.log(JSON.parse(result));  // [ 1, 5, 2, 8, 10, { a: 1 } ]

4.2 构造函数方法

  • Array.isArray() :用来判断某个变量是否是一个数组对象

  • Array.from() :从类数组对象或者可迭代对象中创建一个新的数组实例。

var myArr = Array.from("from");
console.log(myArr);
//输出结果为["f","r","o","m"]
  • Array.of() :根据一组参数来创建新的数组实例,支持任意的参数数量和类型。

Array.of(7);       // [7] 
Array.of(1, 2, 3); // [1, 2, 3]

?4.3 数组原型方法

栈与队列方法

  • Array.prototype.push(item1, item2, ..., itemX)

用于向数组的末尾添加一个或多个元素

返回新的长度,改变数组的长度

  • Array.prototype.pop()

用于删除数组的最后一个元素并返回删除的元素

返回删除的元素 ,改变数组的长度

  • Array.prototype.shift()

用于把数组的第一个元素从其中删除

返回第一个元素的值,改变数组的长度

  • Array.prototype.unshift(item1,item2, ..., itemX)

用于向数组的开头添加一个或更多元素

返回新的长度,改变数组的长度

排序方法

  • Array.prototype.reverse()

用于颠倒数组中元素的顺序

返回颠倒顺序后的数组,改变原数组

  • Array.prototype.sort(sortfunction)

用于对数组的元素进行排序

返回排序后的数组,改变原数组

// 升序
var points = [40,100,1,5,25,10];
points.sort(function(a,b){
	return a-b
});
// 降序
points.sort(function(a,b){
	return b-a
});

操作方法

  • Array.prototype.concat(array1,array2,...,arrayX)

用于连接两个或多个数组

返回被连接后的新数组,不改变原数组

  • Array.prototype.slice(start, end)

从已有的数组中返回选定的元素

返回被提取的部分的新数组,不改变原数组

  • Array.prototype.splice(index,howmany,item1,.....,itemX)

用于添加或删除数组中的元素

返回被删除部分数组,会改变原数组

位置方法

  • Array.prototype.indexOf(item,start)

用于查找数组中某个指定的元素位置

返回指定元素索引,没找到则返回-1

  • Array.prototype.lastIndexOf(item,end)

用于查找数组中某个指定的元素最后出现位置

返回索引,没找到则返回-1

迭代方法

  • Array.prototype.every(function(currentValue,index,arr), thisValue)

用于检测数组所有元素是否都符合指定条件

返回true/false,不会改变原数组,不会检测空数组

参数描述
function(currentValue, index,arr)必须。函数,数组中的每个元素都会执行这个函数 函数参数见下表
thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"
参数描述
currentValue必须。当前元素的值
index可选。当前元素的索引值
arr可选。当前元素属于的数组对象
  • Array.prototype.some(function(currentValue,index,arr),thisValue)

用于检测数组中的元素是否满足指定条件

返回true/false,不会改变原数组,不会检测空数组

  • Array.prototype.filter(function(currentValue,index,arr),thisValue)

通过检查指定数组中符合条件的所有元素

返回满足条件的新数组,不会改变原数组,不会检测空数组

  • Array.prototype.map(function(currentValue,index,arr),thisValue)

原始数组元素调用函数处理

返回处理后的新数组,不会改变原数组,不会检测空数组

  • Array.prototype.forEach(function(currentValue,index,arr),thisValue)

用于调用数组的每个元素,并将元素传递给回调函数。

返回值为undefined,对于空数组是不会执行回调函数的。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:11:30  更:2021-10-09 16:13:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:19:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码