JS高程5.引用类型(5)Array类型的操作方法
一.操作方法
1.concat()方法
基于当前数组中的所有项创建一个新数组。具体说,是先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
eg:
var name=["lin","li","fang"];
var name1=name.concat("zhao","zhou",["hao","cheng"]);
alert(name);
alert(name1);


注意:上面代码中,我把变量名设置为name,这样做不是很好,再下面的slice()如果还是使用name变量名的话,会出现问题,实现不了我们想要的效果:

2.slice()方法
基于当前数组中的一或多个项创建一个新数组。
(1)slice()只有一个参数的情况下,返回从该参数指定位置开始到当前数组末尾的所有项。
eg:
var colors=["red","green","blue","white"];
var son1=colors.slice(1);
alert(son1);

使用name作为变量名的话,会出现下面的问题:
var name=["red","green","blue","white"];
var name2=name.slice(1,3);
alert(name2);

(2)slice()有两个参数时,返回起始位置和结束位置之间的项(但是不包含结束位置的项。)
eg:
var colors=["red","green","blue","white"];
var son1=colors.slice(1,3);
alert(son1);//输出green,blue

注意:如果slice()方法的参数中有一个是负数,则用数组的长度加上该数来确定相应的位置。
eg:
var colors=["red","green","blue","white"];
var son1=colors.slice(-3,-1);
alert(son1);//输出green,blue
数组的长度为4, 4+(-3)=1,4+(-1)=3,所以slice(-3,-1)和slice(1,3)的结果是一样的。
3.splice()方法的主要用途是向数组中插入项,使用方式有以下3种:
(1)删除:可以删除任意数量的项,指定2个参数,要删除的第一项的位置和要删除的项数。
eg:
var colors=["red","green","blue","white"];
var son1=colors.splice(0,2);
alert(colors);//输出blue,white
alert(son1);//输出red,green
splice()返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组。)
(2)插入:可以向指定文字插入任意数量的项,需要三个参数:起始位置,0(要删除的项数)和要插入的项,可以传入多个项。
eg:
var colors=["red","green","blue","white"];
var son1=colors.splice(2,0,"pink","red");
alert(colors);//red,green,pink,red,blue,white
alert(son1);//空数组
(3)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,要需要指定三个参数:起始位置要删除的项数,和要插入的任意项,插入的项数不必与删除的项数相等。
eg:
var colors=["red","green","blue","white"];
var son1=colors.splice(2,2,"pink");
alert(colors);//red,green,pink,pink
alert(son1);//bule,white
小结思考:
这里需要注意的是,好像concat()和splice()方法都可以在一个数组后添加新的项,但是concat()方法是创建一个新的数组,而splice()方法是在原来的数组上进行改变。
eg:
var colors=["red","blue"];
var colors1=colors.concat("green");
alert(colors);//red,blue.注意这里原理的数组是不变的。
alert(colors1);//red,blue,green.这里返回的新的数组colors1。
var c=colors.splice(3,0,"green");
alert(colors);//red,blue,green。在原来的数组上改变。
JS高程5.引用类型(5)Array类型的操作方法的更多相关文章
- JS高程5.引用类型(2)Array类型
Array类型: ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的. 创建数组的基本方式: (1)使用Array构造函数 var color=new Array(); ...
- 《JS高程》引用类型学习笔记
2月圆满的结束了,结束之前是如凤凰般的涅槃.一边上班,一边搞科研的忙碌有点让人透不过气,心会不由得浮躁起来.但是,无论什么事情,只要充满耐心.专心去做,总会朝好的方向发展,心态真的很重要.Anyway ...
- JavaScript引用类型之Array类型一
一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...
- JavaScript引用类型之Array类型API详解
Array类型也是ECMASCRIPT中最常见的数据类型,而且数据的每一项可以保存任何类型的数值,而且数组的大小是可以动态调整的,可以随着数据的添加自动增长以容纳新的数据.下面,总结数据的一些常用方法 ...
- 引用类型之Array类型
Array类型 ECMAScript数组与其它语言数组一样,都是数据的有序列表.但是ECMAScript数组的每一项可以保存任何类型的数据.而且,ECMAScript数组是可以动态调整的. 1.创建和 ...
- JS高程5.引用类型(4)Array类型的各类方法
一.转换方法 所有的对象都具有toLocaleString(),toString()和valueOf()方法.调用toString()方法会返回由数组中的每个值的字符串拼接而成的一个以逗号分隔的字符串 ...
- JS高程5.引用类型(3)Array类型-检测数组
1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...
- JS高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法
一.位置方法 ECMAScript5为数组实例添加了两个位置:indexOf()和 lastIndexOf().这两个方法接收两个参数:要查找的项和(可选的)表示查找起点位置的索引(如在数组[7,8, ...
- JS高程5.引用类型(1)Object类型
引用类型 在ECMASCript中,引用类型是一种数据结构,将数据和功能组织在一起,引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法.(注意:尽管ECMAScript从技术上 ...
随机推荐
- mysql utf8mb4与emoji表情
一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. emoji表情符号,在外国的手机短信里 ...
- Javascript--dataTransfer
描述: 提供对于预定义的剪贴板格式的访问,以便在拖拽中使用 属性 描述 参数 dropEffect[=sCursorStyle] 设置或获取拖拽操作的类型和要显示的光标类型 可选的copy 复制样式被 ...
- AutoMapper 创建嵌套对象映射(原创)
之前在做DTO转换时,用到AutoMapper.但DTO的层次太深了,无奈官方没针对嵌套类型提供好的解决方案,于是自己实现了一下: 思路:采用递归和反射很好的避免手工创建嵌套对象的映射. 第一个版本, ...
- C# 以嵌入到窗体的方式打开外部exe
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using S ...
- Ora中select某时间段记录sql语句
要查找某时间段的记录,例如查找2013-11-1到2013-11-30的记录. ' group by user_name, user_id 注意:SQL语句中含有sum累加函数,末尾要加group b ...
- 图文解说PhpStorm 7.0版本支持PHP 5.5
PhpStorm7.0版本终于在2013年与广大开发者见面了!鉴于PhpStorm 7.0测试版中对PHP语言最新版的支持,JetBrains没让大家失望,PhpStorm 7.0正式版本中,最大的变 ...
- css优先级汇总
原文:css优先级汇总 我所理解的css优先级:当两个或者多个样式作用于同一个元素时,就会出现css优先级的问题. 多重样式优先级:当内联样式.内部样式和外部样式作用于同一个元素时,属于多重样式的范畴 ...
- sql汉字转拼音
/*创建取拼音首字母函数*/ create function [dbo].[fn_ChineseToSpell](@strChinese varchar(500)='') returns varcha ...
- GIT+云盘作 做 文档管理工具
GIT+云盘作 做 文档管理工具 在工作中, 会遇到公司的文档 和 自己家里的 文档进行同步的问题, 通常我们使用U盘作为传输节制, 但是不是非常好,文档的改动都不能发现, 导致回家同步的时候, 出各 ...
- 求解轨道力学二体意义下的Lambert方程(兰伯特方程)的Fortran程序
轨道力学中二体问题下求解兰伯特方程. 老外写的Matlab程序,我把它转成了Fortran程序. !************************************************** ...