javascript数组详解


Posted in Javascript onOctober 22, 2014

如果你是一个有经验的开发者,你可能会认为这个问题比较简单,但是有的时候,我们会感觉这个问题比较有趣。

首先我们来看看数组的定义:“An array is just a list of values which can be accessed by using an integer as the “key”. The list starts at 0 and goes up from there.”,下面我们用对象来描述数组的定义:

var arr = ["benjamin", "zuojj"];

//=>

var arr = {

    "0": "benjamin",

    "1": "zuojj"

};

看上面的例子,总感觉缺少了什么,OK,数组的长度:

 var arr = {

    "0"      : "benjamin",

    "1"      : "zuojj",

    "length" : 2

};

我们知道,在Javascript语言中,数组是一个特殊的对象,我们可以使用访问数组的方式来访问对象的属性,同时,数组也可以像对象那样添加属性。看下例:

var arr = {

    "0"      : "benjamin",

    "1"      : "zuojj",

    "length" : 2

};

//Outputs: "benjamin"

console.log(arr[0]);

//Outputs: 2

console.log(arr.length);
var arr = ["benjamin", "zuojj"];

arr.url = "3water.com";

//Outputs: "3water.com"

console.log(arr.url);

//Outputs: 2

console.log(arr.length);

下面我们来看看数组的方法,数组有很多可操作的方法,如indexOf/slice/splice/sort等,我们知道实际上这些方法存在于Array.prototype中。看下面的例子:

var arr = ["benjamin", "zuojj"];

//Outputs: 1

console.log(arr.indexOf("zuojj"));

arr.indexOf = function(str) {

    return "It is customed indexOf!";

}

//Outputs: "It is customed indexOf!"

console.log(arr.indexOf("zuojj"));

事实上,我们可以使用对象重载所有的数组方法。看下面的push方法的例子:

var arr = {

    length: 0,

    push: function(val) {

        //赋值

        this[this.length] = val;

        //更新数组长度

        this.length += 1;

        //返回数组长度

        return this.length;

    }

}

arr.push("zuojj");

arr.push("benjamin");

//Object {0: "zuojj", 1: "benjamin", length: 2, push: function}

console.log(arr);

但是有一个是不能从新实现的,数组的字面量定义:

var arr = ["benjamin", "zuojj"];

但是我们可以使用构造函数来代替:

var arr = new Array("benjamin", "zuojj");

如果不适用字面量定义数组,那么我们可以重定义数组的定义,以我们自己的方式。

var myArr = new CustomArray("benjamin", "zuojj");

现在你知道javascript中数组是如何工作的了吧,希望对大家有所帮助。

Javascript 相关文章推荐
JavaScript-世界上误解最深的语言分析
Aug 12 Javascript
javascript EXCEL 操作类代码
Jul 30 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
javascript实现秒表计时器的制作方法
Feb 16 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
Oct 07 Javascript
Node.js npm命令运行node.js脚本的方法
Oct 10 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 Javascript
Javascript 数组排序详解
Oct 22 #Javascript
Javascript中arguments对象详解
Oct 22 #Javascript
Javascript中的默认参数详解
Oct 22 #Javascript
js style动态设置table高度
Oct 21 #Javascript
js读写json文件实例代码
Oct 21 #Javascript
一个JavaScript防止表单重复提交的实例
Oct 21 #Javascript
javascript Deferred和递归次数限制实例
Oct 21 #Javascript
You might like
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
php制作简单模版引擎
2016/04/07 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
javascript动态加载三
2012/08/22 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python difflib模块示例讲解
2017/09/13 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python yield和Generator函数用法详解
2020/02/10 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
解释一下抽象方法和抽象类
2016/08/27 面试题
维德科技C#面试题笔试题
2015/12/09 面试题
幼儿园实习自我鉴定
2013/12/15 职场文书
韩国商务邀请函
2014/01/14 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
平安工地建设方案
2014/05/06 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
抗洪救灾标语
2014/10/08 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
无线电知识基础入门篇
2022/02/18 无线电
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL
JS高级程序设计之class继承重点详解
2022/07/07 Javascript