数组的创建和各种API
数组的创建方式:
1. 数组直接量
var arr = [] // 创建一个空数组
var arr = [1,2,3,4] // 创建同时初始化元素
2. 实例化对象
var arr=new Array(); // 此时的arr.length 等于 0 输出:String(arr)等于 ""
3.创建空数组,初始化元素个数:
var arr=new Array(n); // 此时的 arr.length 等于 n 输出:String(arr) 等于 ,,,,,,,...
4.创建数组同时初始化元素:
var arr=new Array(值1,值2...);
关于数组的各种API:
1. 数组转字符串 String join
凡是频繁字符串拼接,都要用数组.join实现
var str=String(arr); // 默认用逗号分隔每个元素值
var str=arr.join("自定义连接符"); // 如果省略自定义参数,默认和String相同
将数组元素拼接为页面元素固定套路:
开始标签+arr.join("结束标签开始标签")+结束标签
2. 拼接和截取:【不修改原数组,生成新数组】 concat(拼接) slice(截取)
拼接:数组名.concat(新增的各个值) 新增的值可以是单个,也可以是数组,参数中的数组会被打撒成单个元素,再拼接,将参数中的值追加到arr1的值之后,【返回新数组】
var newArr=arr1.concat(值1,值2,arr2,...)
例子:
var arr1=[1,2,3];
var arr2 = [];
arr2=arr1.concat(12,23,[123,33]); //拼接 console.log(arr1) //输出[1,2,3]
console.log(arr2); //输出[1,2,3,12,23,123,33] var subArr=arr2.slice(2,4+1); //截取2~4下标 3个元素,含头不含尾
console.log(subArr); //输出[3,12,23]
console.log(arr2); //输出[1,2,3,12,23,123,33]
3. 删除 插入 替换:直接【修改原数组】 splice
默认接收三个值, starti、n、值...
删除: var deleted=arr.splice(starti, n) starti 是开始删除的位置 n 是删除个数 deleted 接收被删除的元素组成的临时子数组 省略第三个值
插入: arr.splice(starti,, 值1, 值2,...) 在 starti 位置插入多个值 原starti位置的值向后顺移。 此时的n值永远为0
替换: var deleted=arr.splice(starti, n, 值1,...); 删除的元素个数n,不一定和新值个数相等。 splice方法没有打散数组参数的功能 三个参数都有值
var arr = [1,2,3,4,5,6] var deleted=arr.splice(2, 3) // 从下标 2 开始,截取 3 个值 console.log(arr) // 输出[1,2,6] 原数组被改变
console.log(deleted) // 输出[3,4,5] arr = [1,2,3,4,5,6] arr.splice(3,0,11,12,13) // 从下标3开始,在后面加入11,12,13 console.log(arr) // 输出 [1,2,3,11,12,13,4,5,6] arr = [1,2,3,4,5,6] var deleted=arr.splice(2,3,101,102,103) // 从下标 2 开始,截取 3 个值, 添加3个值 console.log(arr) // 输出[1,2,101,102,103,6] 原数组被改变 ,截取的位置刚好被添加的值替换
console.log(deleted) // 输出[3,4,5]
4.栈和队列 【修改原数组】 push pop unshift shift
js中没有专门栈和队列类型,其实都是用数组模拟的
arr.push(值) 将 值 压入数组末尾
var last=arr.pop() 从数组 末尾 弹出1个元素 不能传参
arr.unshift(值) 将 值 插入到开头
var first=arr.shift() 从数组 开头 弹出第1个元素
var arr = [1,2,3] // 以下输出假设在 arr = [1,2,3] 的情况下 arr.push(10) // 输出[1,2,3,10] arr.pop() // 输出[1,2] arr.unshift(10) // 输出 [10,1,2,3] arr.shift() // 输出[2,3]
5.翻转数组 【修改原数组】
arr.reverse()
6.数组的排序 【修改原数组】
arr.sort() : 默认将所有元素转为字符串PK unicode 传入函数 function compare(a,b){return a-b;} 如果为 return b-a 那么输出结果为倒序
function compare(a,b){return a-b;}
var arr = [6,9,7,2,4,0,1]
arr.sort(compare);
console.log(arr) // 输出 [0,1,2,4,6,7,9]
数组的创建和各种API的更多相关文章
- 集合 数组 定义 转换 遍历 Arrays API MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组
目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...
- 2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API
Web API 2 支持一种新型的路由,称为属性路由.属性路由的一般概述,请参阅属性路由 Web API 2 中.在本教程中,您将使用属性路由创建一个 REST API 集合的书.API 将支持以下操 ...
- Numpy 学习之路(1)——数组的创建
数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...
- php数组的创建及操作
//数组的创建 //1 $usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复'); echo $usernames; //array,打印类型 echo '&l ...
- 使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件
作者:Sreekanth Mothukuru 2016年2月18日 本文旨在介绍如何使用常用的 Swagger 和 Swashbuckle 框架创建描述 Restful API 的交互界面,并为 AP ...
- Java学习小结(1)-数组的创建与传参
(一)数组的创建 数组的创建包括两部分:数组的申明与分配内存空间. int score[]=null; //申明一维数组 score=new int[3]; //分配长度为3的空间 数组的申明还有另外 ...
- 【ASP.NET Web API教程】2 创建各种Web API
原文 [ASP.NET Web API教程]2 创建各种Web API Chapter 2: Creating Web APIs第2章 创建各种Web API 本文引自:http://www.asp. ...
- 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】
Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...
随机推荐
- 尤克里里 ukulele 单板 非kaka tom uma
本店冲人气优惠,不搞倒闭之类的事 23寸尤克里里 单板 单板 单板 彩贝镶边演出大气 单板 单板 单板 彩贝镶边演出大气 单板 单板 单板 彩贝镶边演出大气 配件选购40元全套(加棉琴包.金属变调夹. ...
- Linux 使用 cp 命令强制覆盖功能
Q:我们平常在Linux中使用 cp 命令时,会发现将一个目录中文件复制到另一个目录具有相同文件名称时, 即使添加了 -rf 参数强制覆盖复制时,系统仍然会提示让你一个个的手工输入 y 确认复制,令人 ...
- JavaBean入门笔记
看了JavaBean感觉很困惑,不知道什么意思,直到查看了资料发现自己理解错误,把JavaBean误当成一种技术,其实Java Bean只是符合一定规范的Java类,便于封装重用.符合这种规范的Jav ...
- Micropython教程之TPYBoard制作蓝牙+红外循迹小车
1.实验目的 学习在PC机系统中扩展简单I/O接口的方法. 进一步学习编制数据输出程序的设计方法. 学习蓝牙模块的接线方法及其工作原理. 学习L298N电机驱动板模块的接线方法. 学习蓝牙控制小车的工 ...
- window64 PHP ffmpeg详解简单上手 音频amr转mp3
从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...
- 纯js代码生成可搜索选择下拉列表
1.因为动态的css楼主写不出来,因此需要引入layui中的css样式:<link rel="stylesheet" href="${ctxStatic}/layu ...
- 你知道BFC、IFC、FFC、GFC及多栏自适应布局吗?
FC(Formatting Context)格式化内容,常见的FC有BFC.IFC.FFC.GFC四种类型,BFC和IFC是W3C CSS2.1规范提出的概念,FFC和GFC是W3C CSS3规范提出 ...
- PE文件详解(三)
本文转自小甲鱼的PE文件详解系列传送门 PE文件到内存的映射 在执行一个PE文件的时候,windows 并不在一开始就将整个文件读入内存的,二十采用与内存映射文件类似的机制. 也就是说,windows ...
- 【转载】小结一下linux 2.6内核的四种IO调度算法
在LINUX 2.6中,有四种关于IO的调度算法,下面综合小结一下: 1) NOOP NOOP算法的全写为No Operation.该算法实现了最最简单的FIFO队列,所有IO请求大致按照先来后到的顺 ...
- 【读书笔记】【深入理解ES6】#9-JavaScript中的类
大多数面向对象的编程语言都支持类和类继承的特性,而JavaScript却不支持这些特性,只能通过其他方法定义并关联多个相似的对象.这个状态一直从ECMAScript 1持续到ECMAScript 5. ...