JavaScript -- 内置对象数组
数组
创建数组的基本方式有两种:
1、使用 Array构造函数
语法:new Array()
小括号( )说明:
(1)预先知道数组要保存的项目数量
(2)向Array构造函数中传递数组应包含的项
2、使用数组字面量表示法
由一对包含数组项的方括号[ ]表示,多个数组项之间以逗号隔开。
读取和设置值时,使用方括号[ ]并提供相应的索引
说明:索引是从0开始的正整数
//创建一个空的数组
var color = new Array();
//给数组赋值
color[0] = 'red';
color[1] = 'yellow';
color[2] = 'green';
console.log(color);
//创建时赋值,方法一
var nums = new Array(1,3,57);
console.log(nums);
//创建时赋值,方法二
var info = [6,'job',99]
console.log(info)
//取值,用索引
console.log(info[1])
结果:
["red", "yellow", "green"]
[1, 3, 57]
[6, "job", 99]
job
数组长度
语法:array.length
功能:获取数组array的长度
返回值:number
说明:
1、通过设置length可以从数组的末尾移除项或向数组中添加新项。
2、当把一个值放在超出当前数组大小的位置上时,数组就会重新计算其长度值,长度值等于最后一项的索引加1。
var arr = ['a','b','c','d']
console.log(arr.length); //数组的长度
arr.length = 2; //数组的长度保留前两个,其余的删掉
console.log(arr);
arr[99] = 100;
console.log(arr.length);//最后一项的索引为99,所以长度为100
结果:
4
["a", "b"]
100
数组的遍历
var arr = ['a','b','c','d']
for (var i=0;i<arr.length;i++){
console.log(arr[i])
}
push和unshift
push语法:
arrayObject.push(newele1,newele2,....,neweX)
功能:
把它的参数顺序添加到 arrayObject 的尾部。
返回值:
把指定的值添加到数组后的新长度。
unshift语法:
arrayObject.unshift(newele1,newele2,....,neweX)
功能:
把它的参数顺序添加到 arrayObject 的开头。
返回值:
把指定的值添加到数组后的新长度。
//push
var color = new Array('red','green');
var len = color.push('blue','yellow');
console.log(color);
console.log(len);
//unshift
var num = [2,7,8,6];
var size = num.unshift(99,66);
console.log(num)
结果;
["red", "green", "blue", "yellow"]
4
[99, 66, 2, 7, 8, 6]
pop和shift
pop语法:
arrayObject.pop()
功能:
删除 arrayObject 的最后一个元素
返回值:
被删除的那个元素
shift语法:
arrayObject.shift()
功能:
删除 arrayObject中的第一个元素
返回值:
被删除的那个元素
//pop
var color = new Array('red','green');
var n = color.pop();
console.log(n);
console.log(color); //shift
var num = [2,7,8,6];
var m = num.shift();
console.log(m);
console.log(num);
结果:
green
["red"]
2
[7, 8, 6]
join
语法:
arrayObject.join(separator)
功能:
用于把数组中的所有元素放入一个字符串。
返回值:字符串。
var nums = [2,4,5];
var numstr = nums.join(); //默认,分隔
console.log(numstr);
var words = ['left','right','top'];
var wordstr = words.join('-');
console.log(wordstr);
结果:
2,4,5
left-right-top
reverse
语法:
stringObject.reverse()
功能:
用于颠倒数组中元素的顺序。
返回值:数组。
var num = [2,7,8,6];
num.reverse();
console.log(num);
结果:
[6, 8, 7, 2]
小练习:
给一个数组strs = ['a','b','c','d'];,返回dcba
var strs = ['a','b','c','d'];
var newstr = strs.reverse().join('');
console.log(newstr);
sort
语法:
arrayObject.sort(sortby)
功能:
用于对数组的元素进行排序。
返回值:数组。
说明:
1、即使数组中的每一项都是数值,sort()方法比较的也是字符串。
2、sort()方法可以接收一个比较函数作为参数。
var arr = [5,76,34,52,99,-3,56];
//默认
arr.sort()
//降序
arr.sort(function (a,b) {return b-a});
//升序
arr.sort(function (a,b) {return a-b});
console.log(arr)
concat
语法:
arrayObject.concat(arrayX,arrayX,......,arrayX)
功能:
用于连接两个或多个数组。
返回值:
数组。
var arr1 = ['1','43','e'],
arr2 = ['a','b','c',88],
arr3;
arr3 = arr1.concat(arr2,['77','mm']);
console.log(arr3);
结果:
["1", "43", "e", "a", "b", "c", 88, "77", "mm"]
slice
语法:
arrayObject.slice(start,end)
功能:
从已有的数组中返回选定的元素。
参数:
start (必需)规定从何处开始选取,如果是负数,那么它规定从数组尾部开始算起的位置。
end(可选)规定从何处结束选取,该参数是数组片断结束处的数组下标。
说明:
1、如果没有指定end,那么切分的数组包含从 start 到数组结束的所有元素。
2、如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置
返回值:数组
var colors = ['red','green','blue','yellow'];
var newColor = colors.slice(1,3);
console.log(newColor);
结果:
["green", "blue"]
splice
splice可以删除数组项,增加数组项,替换数组项。
删除
语法:
arrayObject.splice(index,count)
功能:
删除从 index 处开始的零个或多个元素。
返回值:
含有被删除的元素的数组。
说明:
count是要删除的项目数量,如果设置为 0,则不会删除项目。
如果不设置,则删除从index开始的所有值。
var strs = ['a','b','c','d','e','f','g'];
var delstr = strs.splice(2,2);
console.log(delstr);
console.log(strs);
结果:
["c", "d"]
["a", "b", "e", "f", "g"]
插入:
语法:
arrayObject.splice(index,0,item1,.....,itemX)
功能:
在指定位置插入值
参数:
Index:起始位置
0:要删除的项数
item1…itemX:要插入的项
返回值:数组
var strs = ['a','b','c','d','e','f','g'];
var insertArr = strs.splice(3,0,'mmmm','nnnn','kkkk');
console.log(insertArr);
console.log(strs);
结果:
[]
["a", "b", "c", "mmmm", "nnnn", "kkkk", "d", "e", "f", "g"]
替换:
语法:
arrayObject.splice(index,count,item1,.....,itemX)
功能:
在指定位置插入值,且同时删除任意数量的项
参数:
Index:起始位置
count:要删除的项数
item1…itemX:要插入的项
返回值:从原始数组中删除的项(如果没有删除任何项,则返回空数组)
var strs = ['a','b','c','d','e','f','g'];
var replacesttr = strs.splice(1,2,'XX','YY','ZZ');
console.log(replacesttr);
console.log(strs);
结果:
["b", "c"]
["a", "XX", "YY", "ZZ", "d", "e", "f", "g"]
indexOf
语法:
arrayObject.indexOf(searchvalue,startIndex)
功能:
从数组的开头(位置0)开始向后查找。
参数:
searchvalue:必需,要查找的项;
startIndex:可选,起点位置的索引。
返回值:
number,查找的项在数组中的位置,没有找到的情况下返回-1。
var nums = [2,4,6,8,89,322,7,6,21];
var num1 = nums.indexOf(6);
console.log(num1);
var num2 = nums.indexOf(88);
console.log(num2);
var num3 = nums.indexOf(6,3);
console.log(num3);
结果:
2
-1
7
lastIndexOf
语法:
arrayObject.lastIndexOf(searchvalue,startIndex)
功能:
从数组的末尾开始向前查找。
参数:
searchvalue:必需,要查找的项;
startIndex:可选,起点位置的索引。
返回值:
number,查找的项在数组中的位置,没有找到的情况下返回-1。
var nums = [2,4,6,8,89,322,7,6,21];
var num1 = nums.lastIndexOf(6);
console.log(num1);
var num2 = nums.lastIndexOf(88);
console.log(num2);
var num3 = nums.lastIndexOf(6,3);
console.log(num3);
结果:
7
-1
2
JavaScript -- 内置对象数组的更多相关文章
- document和javaScript内置对象
1.Document 属性: referrer //返回载入当前文档的URL URL //返回当前文档的URL 方法: getElementById(); //根据id获取html元素对象 getEl ...
- javascript 内置对象及常见API
javascript 内置对象及常见API 2012-09-02 15:17 571人阅读 评论(0) 收藏 举报 javascript正则表达式文档浏览器urlstring Javascript内置 ...
- JavaScript进阶 - 第7章 JavaScript内置对象
第7章 JavaScript内置对象 7-1 什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的, ...
- JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装
知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...
- Javascript 笔记与总结(2-4)Javascript 内置对象
① String 字符串对象 fromCharCode() 静态方法, 用作为参数而传递的字符代码创建一个新的字符串. length 字符串的长度. charAt() 抽取字符串中指定位置的字符. c ...
- JavaScript内置对象与原生对象【转】
原文:https://segmentfault.com/a/1190000002634958 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化 ...
- 第7天-javascript内置对象
数组相关方法 concat 用来连接多个数组 <script> var a = [1,2,3]; var b = [3,4,5]; var c = a.concat(b); console ...
- javascript内置对象:Date
JavaScript内置函数:Date时间<script> var today=new Date(); weeks=["日","一",& ...
- JavaScript内置对象与原型继承
(一) 理解JavaScript类定义 1>关于内置对象理解 console.log(Date.prototype.__proto__===Object.prototype //tru ...
随机推荐
- java反射机制应用之动态代理
1.静态代理类和动态代理类区别 静态代理:要求被代理类和代理类同时实现相应的一套接口:通过代理类的对象调用重写接口的方法时,实际上执行的是被代理类的同样的 方法的调用. 动态代理:在程序运行时,根据被 ...
- 【工具篇】Sublime Text 2/3 安装汉化破解、插件包安装教程详解
Sublime Text概述: Sublime Text是一个代码编辑器,也是HTML和散文先进的文本编辑器. 漂亮的用户界面和非凡的功能,例如:迷你地图,多选择,Python插件,代码段等等. 完全 ...
- 第九组 通信3班 063 OSPFv2与OSPFv3综合实验
实验目的 1. 掌握 OSPFv3(v2) 的配置方法 2. 掌握在帧中继环境下 OSPFv3 (v2)的配置方法 3. 掌握 OSPFv3(v2) NSSA 的配置方法 4. 掌握外部路由汇总的配置 ...
- CF 1215解题报告
T1 偶数输出n/2 奇数输出(n-1)/2即可 T2 判断是不是回文 不是直接输出子串 是回文继续判断 如果他前(len+1)/2内没有相同 输出-1 其他的 交换不同字符,输出子串 T3 贪心+二 ...
- PostgreSQL - raise函数打印字符串
raise函数 在PostgreSQL中,该函数用于打印字符串,类似于Java中的System.out.println(),Oracle中的dbms_output.put_line(). 用法如下: ...
- Even-odd Boxes hackerrank 分类讨论
https://www.hackerrank.com/contests/101hack50/challenges/even-and-odd-boxes/editorial 昨晚做的时候卡了挺久的. 首 ...
- 牛客网Java刷题知识点之子类继承不了父类里的(private属性、private方法、构造方法)
不多说,直接上干货! 子类可以继承父类的属性和方法,除了那些private的外还有一样是子类继承不了的---构造器.对于构造器而言,它只能够被子类调用,而不能被子类继承. 调用父类的构造方法我们使用s ...
- 基于spring-boot和docker-java实现对docker容器的动态管理和监控[附完整源码下载]
(我是个封面) docker简介 Docker 是一个开源的应用容器引擎,和传统的虚拟机技术相比,Docker 容器性能开销极低,因此也广受开发者喜爱.随着基于docker的开发者越来越多,doc ...
- java命令--jstack 工具
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...
- Redis集群批量操作
Redis在3.0版正式引入了集群这个特性,扩展变得非常简单.然而当你开心的升级到3.0后,却发现有些很好用的功能现在工作不了了, 比如我们今天要聊的pipeline功能等批量操作. Redis集群是 ...