javascript數(shù)組詳解
如果你是一個有經(jīng)驗的開發(fā)者,你可能會認為這個問題比較簡單,但是有的時候,我們會感覺這個問題比較有趣。
首先我們來看看數(shù)組的定義:“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.”,下面我們用對象來描述數(shù)組的定義:
var arr = ["benjamin", "zuojj"];
//=>
var arr = {
"0": "benjamin",
"1": "zuojj"
};
看上面的例子,總感覺缺少了什么,OK,數(shù)組的長度:
var arr = {
"0" : "benjamin",
"1" : "zuojj",
"length" : 2
};
我們知道,在Javascript語言中,數(shù)組是一個特殊的對象,我們可以使用訪問數(shù)組的方式來訪問對象的屬性,同時,數(shù)組也可以像對象那樣添加屬性??聪吕?/p>
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 = "www.dbjr.com.cn";
//Outputs: "www.dbjr.com.cn"
console.log(arr.url);
//Outputs: 2
console.log(arr.length);
下面我們來看看數(shù)組的方法,數(shù)組有很多可操作的方法,如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"));
事實上,我們可以使用對象重載所有的數(shù)組方法。看下面的push方法的例子:
var arr = {
length: 0,
push: function(val) {
//賦值
this[this.length] = val;
//更新數(shù)組長度
this.length += 1;
//返回數(shù)組長度
return this.length;
}
}
arr.push("zuojj");
arr.push("benjamin");
//Object {0: "zuojj", 1: "benjamin", length: 2, push: function}
console.log(arr);
但是有一個是不能從新實現(xiàn)的,數(shù)組的字面量定義:
但是我們可以使用構(gòu)造函數(shù)來代替:
如果不適用字面量定義數(shù)組,那么我們可以重定義數(shù)組的定義,以我們自己的方式。
現(xiàn)在你知道javascript中數(shù)組是如何工作的了吧,希望對大家有所幫助。
- Javascript的數(shù)組與字典用法與遍歷對象的屬性技巧
- JavaScript數(shù)組常用操作技巧匯總
- Javascript 數(shù)組排序詳解
- 一個JavaScript遞歸實現(xiàn)反轉(zhuǎn)數(shù)組字符串的實例
- JavaScript中實現(xiàn)最高效的數(shù)組亂序方法
- 原生JavaScript實現(xiàn)合并多個數(shù)組示例
- JavaScript中合并數(shù)組的N種方法
- javascript字典探測用戶名工具
- Javascript中this的用法詳解
- javascript常見用法總結(jié)
- Javascript數(shù)組與字典用法分析
相關(guān)文章
JavaScript中使用concat()方法拼接字符串的教程
這篇文章主要介紹了JavaScript中使用concat()方法拼接字符串的教程,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06JavaScript replace(rgExp,fn)正則替換的用法
再看jQuery源碼的時候遇到了replace中參數(shù)為函數(shù)的用法,正好復習一下replace正則替換的用法。2010-03-03javascript中var與let、const的區(qū)別詳解
這篇文章主要介紹了javascript中var與let、const的區(qū)別詳解,需要的朋友可以參考下2022-12-12JavaScript與DOM組合動態(tài)創(chuàng)建表格實例
這篇文章簡單介紹了DOM 1.0一些基本而強大的方法以及如何在JavaScript中使用它們;你可以學到如何動態(tài)地創(chuàng)建、獲取、控制和刪除HTML元素2012-12-12JavaScript中對DOM節(jié)點的訪問、創(chuàng)建、修改、刪除
這篇文章主要介紹了JavaScript中對DOM節(jié)點的訪問、創(chuàng)建、修改、刪除,是JavaScript入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11