当前位置: 首页 > news >正文

JavaScript-Array类型

Array类型

数组的常见方法

检测数组类型

var arr = [1,2,3,4,5];

console.log(arr instanceof Array);//true

//Object.prototype.toString.call()方法可以准确判断当前变量的类型
console.log(Object.prototype.toString.call(arr));//[object Array]

//Object.prototype.isPrototypeOf()方法判断指定类型是否在当前对象的原型链中
console.log(Array.prototype.isPrototypeOf(arr));//true

console.log(Array.isArray(arr));//true

转换方法

  • toString()-把数组转换成字符串,并返回结果
  • valueOf()-返回数组对象的原始值
var arr = [1,2,3,4,5,6,7];

//数组转换为字符串形式,多个数组元素用逗号隔开
console.log(arr.toString());//1,2,3,4,5,6,7

//将数组转化为原始类型
console.log(arr.valueOf());//[ 1, 2, 3, 4, 5, 6, 7 ]

var ojb ={
    name : '花'
} ;
console.log(ojb.valueOf());//{ name: '花' }

进出栈方法

var arr = [1,2,3,4,5];

//push()方法-在数组末尾添加一个或多个元素,并返回新的长度
console.log(arr);//[ 1, 2, 3, 4, 5, 6 ]
console.log(arr.push());//6

//pop()方法删除数组最后一个元素并返回删除的元素
console.log(arr.pop());//6
console.log(arr);//[ 1, 2, 3, 4, 5 ]

//unshift()-在数组开头添加一个或多个元素,并返回新的长度
console.log(arr.unshift(7));//6
console.log(arr);//[ 7, 1, 2, 3, 4, 5 ]

//shift()-删除并返回数组第一个元素
console.log(arr.shift());//7

###排序方法
  • reverse()-反转数组的元素顺序
  • sort()-对数组的元素进行排序

注意:返回值是排序之后的数组

var arr = [1,2,3,4,5];

//reverse()-反转数组元素的顺序
console.log(arr.reverse());//[ 5, 4, 3, 2, 1 ]

//sort()-改变元素的顺序,根据Unicode码排序
console.log(arr.sort());//[ 1, 2, 3, 4, 5 ]

连接方法

var arr = [1,2,3,4,5];
//concat()-连接多个数组
console.log(arr.concat(6));//[ 1, 2, 3, 4, 5, 6 ]

操作方法

  • slice()-选取数组的一部分,并返回一个新数组
  • splicle()-从数组中添加或删除元素
var arr = [1,2,3,4,5];

/*    slice()-截取一部分数据并作为新数据输出
*       参数
*          begin-开始截取的位置
*          end-截取最后的位置的下一个位置*/
/*
console.log(arr.slice(0,3));//[ 1, 2, 3 ]*/

/*    splice()-添加或删除元素
*       参数
*         start-表示删除的开始位置
*         deleteCount-表示删除的个数
*      返回值-删除的元素组成新的数组返回*/

console.log(arr.splice(0,4));//[ 1, 2, 3, 4 ]
console.log(arr);//[ 5 ]

检索方法

  • indexOf()-搜索数组中的元素,并返回它所在的位置
  • lastindexOf()-返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后往前搜索。
var arr = [1,2,3,4,5,6,7];

//indexOf()-从左向右检索指定元素,遇到第一个置顶元素返回它的位置
console.log(arr.indexOf(3));//2

//lastindexOf()-从右向左检索指定元素,遇到第一个置顶元素返回它的位置
console.log(arr.lastIndexOf(5));//4

//检索数组不存在的元素返回-1
console.log(arr.lastIndexOf(8));//-1

迭代与归并方法

迭代方法

  • every() -判断数组中每个元素是否都满足fun函数定义的条件,都满足返回true,否则返回flase
  • filter() -专门用于筛选出数组中符合fun函数判断条件的元素组成的新数组
  • forEach()- 专门用于对原数组中每个元素执行相同的fun函数对象规定的操作
  • map()- 专门用于基于原数组创建新数组对象
  • some()- 判断是否包含满足fun函数定义的条件的元素,只要包含就返回true,否则返回flase
var arr= [1,2,3,4,5];

/*   Array.prototype.forEach()
*     参数
*       callback - 表示回调函数
*         currentValue - 遍历数组得到每个元素
*         index - 表示遍历数组得到的每个元素的索引值
*         array - 表示遍历的数组*/

arr.forEach(function(currentValue,index,array){
    console.log(currentValue)
});

var arr = [1,2,3,4,5,6,7];

/* accumulator - 累加器的返回值

  • currentValue - 数组正在处理的元素(没有第一位元素)
  • currentIndex - 数组正在处理的元素的索引值
  • */

arr.reduce(function (accumulator,currentValue,currentIndex,array) {

console.log(accumulator);
return accumulator+currentValue

});

相关文章:

  • Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记
  • oracle 修改字符集
  • iOS持续集成(一)——fastlane 使用
  • Python tips(
  • C#窗体越界时鼠标还能回到初始坐标位置
  • SQLServer 2014 本地机房HA+灾备机房DR解决方案
  • Java编程笔试面试题:分析下列程序的执行结果
  • 机器学习常见的优化算法
  • SQL 内连接,外连接(左外连接、右外连接)
  • 进程和任务计划
  • 文件、目录管理
  • centos7安装配置mysql5.6
  • 类的成员和嵌套(建模)
  • vue-组件基础
  • 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
  • [译]前端离线指南(上)
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Cumulo 的 ClojureScript 模块已经成型
  • JS 面试题总结
  • JS笔记四:作用域、变量(函数)提升
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • npx命令介绍
  • PAT A1017 优先队列
  • React 快速上手 - 07 前端路由 react-router
  • SwizzleMethod 黑魔法
  • vue数据传递--我有特殊的实现技巧
  • webpack+react项目初体验——记录我的webpack环境配置
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 大主子表关联的性能优化方法
  • 基于HAProxy的高性能缓存服务器nuster
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 学习笔记TF060:图像语音结合,看图说话
  • 用element的upload组件实现多图片上传和压缩
  • Semaphore
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #传输# #传输数据判断#
  • (C++17) std算法之执行策略 execution
  • (k8s中)docker netty OOM问题记录
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (三)c52学习之旅-点亮LED灯
  • (五)MySQL的备份及恢复
  • (转)shell调试方法
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET 4.0中的泛型协变和反变
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Micro Framework 4.2 beta 源码探析
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net refrector