用js有很久了,但都沒有深究過js的陣列形式。偶爾用用也就是簡單的string.split(char)。這段時間做的一個項目,用到陣列的地方很多,自以為js高手的自己居然無從下手,一下狠心,我學!呵呵。學了之後才知道,js數組的功能強大很,遠比VB,C#強多了,大家慢慢看吧
1、陣列的建立
var arrayObj = new Array();陣列
var arrayObj = new Array([size]); //建立一個陣列並指定長度,注意不是上限,是長度
var arrayObj = new Array([element0[, element1[, ...[ , elementN]]]]); //建立一個陣列並賦值
要說明的是,雖然第二種方法建立數組指定了長度,但實際上所有情況下數組都是變長的,也就是說即使指定了長度為5,仍然可以將元素儲存在規定長度以外的,注意:這時長度會隨之改變。
2、陣列的元素的存取
var testGetArrValue=arrayObjValue=arrayO的元素值
arrayObj[1]= "這是新值"; //給予陣列元素新的值
3、陣列元素的添加
arrayObj. push([🎜>
arrayObj. push([item11 [item2 [item11. [itemN ]]]]);// 將一個或多個新元素加入陣列結尾,並傳回陣列新長度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]); // 將一個或多個新元素加入數組開始,數組中的元素自動後移,返回數組新長度
4、陣列元素的刪除
arrayObj.pop(); //最後一個移除(); //最後一個移除元素並傳回該元素值
arrayObj.shift(); //移除最前一個元素並傳回該元素值,數組中元素自動前移
5、陣列的截取與合併
arrayObj.slice(start, [end]); /以陣列的形式傳回陣列的一部分,注意不包含end 對應的元素,如果省略end 將複製start 之後的所有元素
6、陣列的拷貝
arrayObj.slice(0); //傳回數組的拷貝數組,注意是一個新的數組,不是指向
7、陣列元素的排序
arrayObj.reverse(); //反轉元素(最前面的排到最後、最後的排到最前面),回傳陣列位址
8、陣列元素的字串化 程式碼如下:
arrayObj.join(separator); //傳回字串,這個字串將陣列的每一個元素值連接在一起,中間用 separator 隔開。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
二、陣列物件的3個屬性
1、length 屬性
Length屬性表示陣列的長度,即其中元素的數量。因為陣列的索引總是由0開始,所以一個陣列的上下限分別是:0和length-1。和其他大多數語言不同的是,JavaScript數組的length屬性是可變的,這一點需要特別注意。當length屬性被設定得更大時,整個數組的狀態事實上不會發生變化,僅僅是length屬性變大;當length屬性被設定得比原來小時,則原先數組中索引大於或等於length的元素的值全部被遺失。以下是示範改變length屬性的例子:
var arr=[12,23,55,3 25,98,76,54,56,76];
//定義了一個包含10個數字的陣列
alert(arr.length); //顯示陣列的長度10
arr.length =12; //增加陣列的長度
alert(arr.length); //顯示陣列的長度已經變成12
alert(arr[8]); //顯示第9個元素的值,為56
arr.length=5; //將陣列的長度減少到5,索引等於或超過5的元素被丟棄
alert(arr[8]); //顯示第9個元素已經變成"undefined"
arr.length=10; //將陣列長度還原為10
alert(arr[8]); //雖然長度被還原為10,但第9個元素卻無法收回,顯示"undefined"
由上面的程式碼我們可以清楚的看到length屬性的性質。但length物件不僅可以明確的設置,它也有可能被隱式修改。 JavaScript中可以使用一個未宣告過的變數,同樣,也可以使用一個未定義的陣列元素(指索引超過或等於length的元素),這時,length屬性的值將會被設定為所使用元素索引的值加1。例如下面的程式碼:
var arr=[12,23,5,3 25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);
程式碼中同樣是先定義了一個包含10個數字的數組,透過alert語句可以看出其長度為10。隨後使用了索引為15的元素,將其賦值為15,即 arr[15]=34,這時再用alert語句輸出數組的長度,得到的是16。無論如何,對於習慣強型別程式設計的開發人員來說,這是一個很令人驚訝的功能。事實上,使用new Array()形式建立的數組,其初始長度就是為0,而正是對其中未定義元素的操作,才會使數組的長度改變。
由上面的介紹可以看到,length屬性是如此的神奇,利用它可以方便的增加或減少數組的容量。因此對length屬性的深入了解,有助於在開發過程中靈活運用。
2、prototype 屬性
傳回物件類型原型的參考。 prototype 屬性是 object 共有的。
objectName.prototype
objectName 參數是object物件的名稱。
說明:用 prototype 屬性提供物件的類別的一組基本功能。 物件的新實例「繼承」賦予該物件原型的操作。
對於陣列對象,以下列範例說明prototype 屬性的用途。
為陣列物件新增傳回陣列中最大元素值的方法。要完成這一點,請聲明一個函數,將它加入 Array.prototype, 並使用它。
function 🎜> var i,
max = this[0];
for (i = 1; i max = this[i];
}
return max;
}
Array.prototype.max = array_max
}
Array.prototype.max = array_max;var y = x.max();
該程式碼執行後,y 儲存數組 x 中的最大值,或說 6。
3、constructor 屬性
表示建立物件的函數。
object.constructor //object是物件或函數的名稱。
說明:constructor 屬性是所有具有 prototype 的物件的成員。它們包括除 Global 和 Math 物件以外的所有 JScript 固有物件。 constructor 屬性保存了對建構特定物件實例的函數的參考。
例如:
x = new String("Hi");
x = new String("Hi");
或
function MyFunc {
> 函數。
程式碼如下:
y = new MyFunc;
對陣列來說:

方法:1、用shift()删除第一个元素,语法“数组.shift()”;2、用pop()删除最后一个元素,语法“数组.pop()”;3、用splice()删除任意位置的元素,语法“数组.splice(位置,个数)”;4、用length删除尾部的N个元素,语法“数组.length=原数组长度-N”;5、直接赋予空数组“[]”来清空元素;6、用delete删除指定下标的一个元素。

在 JS 中获取数组长度非常简单,每个数组都有一个 length 属性,该属性返回数组的最大长度,即其值等于最大下标值加 1。由于数字下标必须小于 2^32-1,所以 length 属性最大值等于 2^32-1。下面代码定义了一个空数组,然后为下标等于 100 的元素赋值,则 length 属性返回 101。因此,length 属性不能体现数组元素的实际个数。

3种转换方法:1、使用split(),可将给定字符串拆分为字符串数组,语法“str.split(分隔符,数组最大长度)”;2、利用扩展运算符“...”,可迭代字符串对象,将其转为字符数组,语法“[...str]”;3、使用Array.from(),可将字符串转为数组,语法“Array.from(str)”。

js数组可以转化成php数组,其操作方法是:1、建立php示例文件;2、使用语法“JSON.stringify()”将js数组转化为JSON格式的字符串;3、使用语法“json_decode()”将JSON格式字符串转为PHP数组,此处添加了参数true,表示将JSON格式字符串转换成PHP关联数组。

js数组删除某个元素有4种方法,分别是:1、使用splice;2、使用filter;3、使用pop方法和shift;4、使用delete关键字。

JavaScript的Array.prototype.sort()方法用于对数组的元素进行排序。此方法是就地排序,也就是说,它修改原始数组,而不是返回一个新的排序数组。默认情况下,sort()方法按照字符串Unicode码点值进行排序。这意味着它主要用于字符串和数字的排序,而不是用于对象或其他复杂数据类型的排序。

JavaScript中,可利用length属性来获取数组长度,语法“数组对象.length”;可使用reduce()或reduceRight()函数来求元素之和,语法“arr.reduce(function f(pre,curr){return pre+cur})”或“arr.reduceRight(function f(pre,curr){return pre+cur})”。

在web开发中,由于JavaScript(JS)和PHP是两种最为常用的编程语言,因此数组在开发过程中是不可避免的。针对这种情况,很多时候我们需要将JS数组转为PHP数组。实现这种功能的方法有很多,下面将一一介绍。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境