对js中的引用类型的理解(3)——Array类型

原创 2015年11月18日 17:35:41

简单总结

js数组的每一项可以保存任何类型的数据,js数组的大小可以动态调整,即随时可以随着数据的添加自动增长以容纳新数据(js是一种动态类型语言)

2种创建数组的基本方式:

//// 第一种
var colors = new Array();
//如果预先知道数组要保存的项目数量
var colors = new Array(20);
//也可以向构造函数中添加元素
var colors = new Array("red","blue","green");

//另外,在使用Array构造函数时也可以省略new操作符:
var colors = Array(3);
var names = Array("sqliang");

//// 第二种:字面量(推荐)
var colors = ['red','green','blue'];
var names = [];//创建一个空数组(注:**在使用字面量表示法时,不会调用Array构造函数**)

数组的属性:

数组的length属性是比较有特点的,它不仅仅是只读的,因此通过设置这个属性,可以从数组的末尾移出项或向数组添加新项.
这里写图片描述

检测数组

//ES3对于一个网页或者一个全局作用域而言,使用instancof可以得到满意的结果
if(colors instanceof Array){

}
//ES5,支持的浏览器有:IE9+、FireFox4+、Chrome,Safari5+,opera10.5+
if(Array.isArray()colors){
}

转换方法

colors.toString();//toString()返回由数组中每个值得字符串拼接而成的一个以逗号分隔的字符串
colors.valueOf();//返回的还是数组
colors.toLocalString();//也会返回与toString()和valueOf()方法仙童的值

栈方法(LIFO,Last-In-First-Out)

js为数组专门提供了push()和pop()方法,以方便实现类似栈的行为
push()方法可以接受任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度,pop()方法则从数组末尾移除最后一项,减少数组的length值,并返回移除的项。

var colors = new Array();
var count = colors.push("red","green");
console.log(count);//2

count = colors.push("black");
console.log(count);//3

var item = colors.pop();
console.log(item);//"black"
console.log(colors.length);

队列方法(FIFO,First-In-First-Out)

队列在列表的末端添加项(push()),从列表的前端移除项(shift(),移除数组的第一个项并返回该项,同时将数组length减1)

var colors = new Array();
var count = colors.push("red","green");
console.log(count);//2

count = colors.push("black");
console.log(count);//3

var item = colors.shift();
console.log(item);//"red"
console.log(colors.length);//2

js还为数组提供了一个unshift()方法,可以在数组前端添加任意个项,并返回数组的长度。因此,同时使用unshift()和pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项

var colors = new Array();
var count = colors.unshift("red","green");
console.log(count);//2

count = colors.unshift("black");
console.log(count);//3

var item = colors.pop();
console.log(item);//"green"

*重新排序方法

可以直接使用reverse()和sort()来重新排序

reverse()方法会反转数组项的顺序:

var haha = [1,2,3,4,5];
haha.reverse();
console.log(haha);//5,4,3,2,1

sort()方法会按照升序排列数组项,即最小的排在最前面,最大的排在最后面。为了实现排序,sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串,以确定如何排序,即使数组中的每一项都是数值,sort()方法比较的也是字符串,这种方案肯定不好,因此,sort方法可以接收一个比较函数作为参数,以便我们来指定哪个值位于哪个值得前面

//等价于compare1
function compare(value1,value2){
    if(value1 < value2){
        return -1;
    }else if(value1 > value2){
        return 1;
    }else{
        return 0;
    }
}
//compare1
function compare1(value1,value2){
    return value2 - value1;
}

var haha = [3,2,1,10,15];
haha.sort(compare);//升序排列
console.log(haha);//1,2,3,10,15

操作方法

concat()方法基于当前数组的所有项创建一个新数组。即先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有传递参数的情况下,它只是复制当前数组并返回副本。如果传递给concat()方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。如果传递的不是数组,这些值会直接添加到结果数组的末尾处

var colors = ["red","green","blue"];
var colors2 = colors.concat("yellow",["black","brown"]);

console.log(colors);//red,green,blue
console.log(colors2);//red,green,blue,yellow,black,brown

slice()方法接收一个或两个参数,即要返回的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始位置和结束位置之间的项,单包括结束位置的项

var colors = ["red","green","blue","yellow","purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
console.log(colors2);//"green","blue","yellow","purple"
console.log(colors3);//"green","blue","yellow"
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

js数据类型 ——引用类型(Array).1/3

一.创建数组 var arr = new Array(5)//5是长度,new可省略 var arr = new Array("one","two")或var arr = ["one","two"]...

js--引用类型Array--3.数组简单复制和深度复制

js数组也是很重要的一块,所以准备对数组的操作等写一个系列。 1.第一部分是二元数组的基础知识。 http://blog.csdn.net/github_34514750/article/de...

js学习笔记:引用类型——Array

Array类型与其它语言不同,ECMAScript数组的每一项可以保存任何类型的数据。 而且,ECMAScript数组的大小是动态调整的。创建数组创建数组有两种方式: Array构造函数 var c...

JS中的引用类型——Array 类型

一、JS中的数组类型与其他语言的区别 JavaScript 数组的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,用第三个位置来保存对象,等等。 Ja...

24 JS基础之--数组API(引用类型Array)

A instanceof B : 判断A是否是B构造出来的对象。是的话返回true,否返回false

《javascript高级程序设计》——引用类型之Object、Array

Object1.创建Object实例的方式有两种:var person=new Object(); person.name="zx"; person.age=19;对象字面量表示法:var perso...

浅谈JavaScript引用类型——Array

1、ECMAScript数组的特点 (1)ECMAScript数组的每一项可以保存任何类型的数据。 (2)ECMAScript数组的大小是可以动态调整的。 2、创建数组 (1)使用Array构造...

高级js教程3——Function类型

在javascript的世界里,函数也是对象,函数名是指向对象的指针。一般有如下三种方法来声明一个函数: 第一种 function someFunction() { alert("he...

js--引用类型Array--1.Array的基础知识

1.检测数组value instanceof Array但若在两个以上不同的全局执行环境下,会存在两个以上版本的Array构造函数,当一个框架向另外一个框架传入数组时,传入的数组和第二个框架中原生创建...

JS中的Array和String,Date类型的一点小操作

知识] JS中的Array和String,Date类型的一点小操作大 中 小数组是JS核心提供的一种强大的集合类型。     JS中声明数组的定义有以下几种方法:      1. var a=ne...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)