日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组(待完成)

發(fā)布時間:2023/11/29 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组(待完成) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

創(chuàng)建

?

字面量方式

var arr = []; var arr = ["成員1", 2];//可以是不同成員

?

構(gòu)造函數(shù)方式

空的

var array = new Array();

?

指定長度

var array2 = new Array(10);

成員值都是undefined。此方式有技巧使用

雖然值是undefined,但join后不會出現(xiàn)undefined字符串

比如:

new Array(10).join('') // 依然返回空字符串 new Array(10).join('x') // 9個x new Array(10).join('<li></li>') // 9個li標(biāo)簽

?

length

可讀寫屬性

讀操作

都懂...略過

?

寫操作

操作(比之前多):相當(dāng)于末尾追加了成員,初始值為undefined

?

操作(比之前少):少了多少相當(dāng)于 末尾刪了多少

數(shù)組對length屬性進(jìn)行減少的 寫操作,成員真的減少了。

有時候想,length屬性如果沒真正刪除,reverse反轉(zhuǎn)后是不是能把刪除的反過來?而實際上,

reverse反轉(zhuǎn)操作正常(強(qiáng)調(diào):正常指并沒有把刪掉的成員反轉(zhuǎn)過來)

?

div1.innerHTML = array.length;

?

?

?

轉(zhuǎn)換

字符串轉(zhuǎn)數(shù)組-split

String.split([string])

?

給參情況

用字符串中指定子串 將 字符串 切割成 數(shù)組

'張,李,陳,黃'.split(',');//["張", "李", "陳", "黃"]

?

空字符串情況

將每個字符分割成數(shù)組

'張,李,陳,黃'.split('');//["張", ",", "李", ",", "陳", ",", "黃"]

?

不給參情況

返回只有原字符串一個成員的數(shù)組

'張,李,陳,黃'.split();//["張,李,陳,黃"]

?

數(shù)組轉(zhuǎn)字符串-join

用指定字符串 將 數(shù)組 連接成 字符串

[ '張', '李', '陳', '黃' ].join('-');// '張-李-陳-黃'

?

不帶參:

[ '張', '李', '陳', '黃' ].join();// '張,李,陳,黃'

似乎默認(rèn)使用了逗號相連

也可以說是 直接將數(shù)組轉(zhuǎn)換成字符串

?

數(shù)組length=1

['張'].join('-');// '張'

?

數(shù)組length=0

[].join('-').length===0;//true。看來是空字符串...

集合轉(zhuǎn)數(shù)組-slice技巧

集合指的是那種有l(wèi)ength屬性的類數(shù)組對象

?

HTMLCollection 集合例子

eItems = [].slice.call(document.body.children, 0);

這種集合ie678不支持,參數(shù)3不會影響HTMLCollection集合

?

對象模擬 例子

var obj = {0: 0,1: 1,length: 10 }; var arr = [].slice.call(obj, 0); arr.lenght; // 10

這種支持包括ie6的所有。參數(shù)3如果給,將影響obj。不給或者負(fù)數(shù)都不影響

?

其他splice用法見?[splice增刪詳解]

?

數(shù)組轉(zhuǎn)字符串-toString

arr.toString() 相當(dāng)于?arr.join(',')

var arr = ['成員1', '成員2', {}]; arr.toString() //成員1,成員2,[object Object] arr.join(',') //成員1,成員2,[object Object]

?

增成員

?

追加

?

底部-push

array.push("燒餅1");

頭部-unshift

array.unshift("燒餅0");

?

返回值

返回更改后的數(shù)組長度

?

指定位置增加

指定 索引位置增加

如原來位置存在元素,則覆蓋。。。

var arr=[]; arr[3]=1; console.log(arr.length);// 4

?

刪成員

?

使用delete操作符

刪第一個

var arr=["張", "李", "陳", "黃"]; delete arr[0]; console.log(arr[0]);// undefined console.log(arr.length);// 4

?

刪最后一個

var arr=["張", "李", "陳", "黃"]; delete arr[3]; console.log(arr[3]);// undefined console.log(arr.length);// 4

?

兩個例子說明,只是把值換成了undefined了,length不變

使用for in無法循環(huán)出刪掉的成員了,如果強(qiáng)行賦值undefined,又能循環(huán)出來,看來真刪除了。

或者說這只是對象的特性而已,數(shù)組也是對象嘛

?

兼容性:包括ie6的所有

?

使用shift pop splice 刪除

?

見 [取成員]

?

通過設(shè)置length

var arr=["張", "李", "陳", "黃"]; arr.length=1; console.log(arr);//["張"] 。真的就只有這么一個了!!

?

兼容性:包括ie6的所有

?

詳情 見 [length] 寫操作

?

改成員

根據(jù)索引覆蓋操作。都懂...

var arr=['張', '李', '陳', '黃']; arr[0]='xx';

?

取成員

單個,一般獲取

根據(jù)索引獲取

var arr=['張', '李', '陳', '黃']; console.log(arr[0]); console.log(arr['0']);// 根據(jù)以前的筆記說firefox這樣不行?反正現(xiàn)在是行了...

單個,帶刪除 的獲取

取一個便少一個。將更改 原數(shù)組

?

取第一個

arr.shift();

?

取最后一個

arr.pop();

?

取指定

使用splice實現(xiàn)

var arr=['張', '李', '陳', '黃']; arr.splice(2, 1);// '陳'。取到了第3個成員 arr;// ['張', '李', '黃']

?

多個,帶刪除splice

取多個指定成員,取多少原數(shù)組便會減多少

Array.splice(開始索引,數(shù)量)

返回一個新數(shù)組,裝載取到的成員

?

splice 增刪詳解

?

參考網(wǎng)址:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

?

語法

array.splice(start, deleteCount[, item1[, item2[, ...]]])

?

?

參數(shù):

?start 必須。起始索引,負(fù)數(shù)表示從尾部開始起始

?deleteCount 必須(實測可以不帶)。刪除的個數(shù)(含第 start 位)

? 0或負(fù)數(shù)都表示不刪除,一般用0

? 超出情況將刪除index之后的所有成員

? 技術(shù)文檔都說這個是必須,實測不帶也可以,不帶將刪除start(包含start)之后的所有

?itemN 可選,要增加的成員。將從 start 位置處增加。將把start位置以及后面的元素往后擠

?

返回值:

被刪掉的成員組成的新數(shù)組

沒有被刪返回空數(shù)組

?

將更改原始數(shù)組:

deleteCount?刪除、itemN?增加 將應(yīng)用到原數(shù)組中。而被刪除的成員將拼成一個新數(shù)組被返回

?

兼容:

包括ie6的所有

?

關(guān)于clone:

splice不能實現(xiàn)clone,arr.concat、arr.slice可以實現(xiàn)

?

?

slice 復(fù)制數(shù)組

?

可指定位置進(jìn)行復(fù)制

?

語法

arr.slice(begin[, end])

?

?

參數(shù)

begin

開始索引,從0開始

可以是負(fù)數(shù),負(fù)數(shù)情況 相當(dāng)于 length + begin,相減后結(jié)果如果還是負(fù)數(shù)將視0為起始

包含,新數(shù)組將包含此位置的值

經(jīng)測試此參數(shù)也是可選的,省略情況相當(dāng)于arr.slice(0)

?

end

結(jié)束索引,從0開始

省略此參數(shù)將將一直取到原數(shù)組末尾

可以是負(fù)數(shù),負(fù)數(shù)情況原理同begin一樣

不包含,新數(shù)組將不包含此位置的值

小于或者等于begin 將 返回空數(shù)組,負(fù)數(shù)情況也如此

?

返回新數(shù)組

?

不更改原數(shù)組

?

完全復(fù)制

不帶參或者 begin 為 0 即可實現(xiàn)完全復(fù)制

?

兼容性

包括 ie6 的所有瀏覽器

?

concat 合并數(shù)組

實現(xiàn) 合并 或者?追加。返回一個新數(shù)組

數(shù)組情況是合并,非數(shù)組是追加。

var arr = ['成員1', '成員2', '成員3'], arr.concat('成員4',['成員5'])// ["成員1", "成員2", "成員3", "成員4", "成員5"]

?

語法:

array.concat(value1, value2, ..., valueN)

?

參數(shù):

?valueN 可選,不帶參將實現(xiàn)復(fù)制??

?

關(guān)于合并:

就是將數(shù)組的所有子成員追加進(jìn)來,相當(dāng)于如果參數(shù)是數(shù)組,那么你當(dāng)它沒有中括號吧。

合并只限于子級, 如果子成員還是數(shù)組 ,不會再去合并,此數(shù)組將視為成員。

var arr = ['成員1', '成員2', '成員3'],arr2= ['成員4',['成員5']]; var newArr = arr.concat(arr2); console.log(newArr); // ["成員1", "成員2", "成員3", "成員4", ["成員5"]]

?

返回值:

合并后的數(shù)組

?

不更改原數(shù)組,也不會更改作為參數(shù)的數(shù)組 var arr = ['成員1', '成員2', '成員3'],arr2= ['成員4','成員5']; var newArr = arr.concat(arr2);console.log(arr); // ["成員1", "成員2", "成員3"] console.log(arr2); // ["成員4", "成員5"] console.log(newArr); // ["成員1", "成員2", "成員3", "成員4", "成員5"]

?

可實現(xiàn)clone

不帶參即可

slice也可以實現(xiàn)clone

var arr = ['成員1', '成員2', '成員3']; var newArr = arr.concat();

兼容性:包括ie6的所有

?

sort 排序

默認(rèn)排序,將按字符排序

不帶參即可,升序,即小的在前面。

?

將更改原數(shù)組

?

漢字

的話根據(jù) Unicode編碼,并非按照拼音

['陳','張', '黃','李'].sort();//["張", "李", "陳", "黃"]

上例中,如果按照拼音,'陳'應(yīng)該在最前才對。而輸出字符對于的Unicode編碼是?5F20 674E 9648 9EC4,這很明顯

推想,估計所有字符,包括字母都是按照編碼來的

?

字符排序探索

逐個字符進(jìn)行對比(如果是數(shù)字,并非根據(jù)數(shù)量)

[100,99].sort()// [100, 99]

其實,如果看了下面的自定義排序,上例的結(jié)果感覺應(yīng)該是這么來的。轉(zhuǎn)字符串,再比較

'100'<'99'// true

?

自定義排序

下例實現(xiàn)數(shù)字排序。例子為降序。升序 將1 和 -1 調(diào)換即可

([2, 33, 12, 6, 3333]).sort(function (v1, v2) {if (v1 < v2) return 1;if (v1 > v2) return -1;return 0;// 不處理 })

?

強(qiáng)調(diào):將更改原數(shù)組

?

有返回值

雖然更改了原數(shù)組,但還是有返回值,返回更改后的原數(shù)組,或者說返回原數(shù)組引用

?

?

reverse 數(shù)組反轉(zhuǎn)

差不多就是將整個數(shù)組倒過來,第一個位置就是 最后一個成員了

arr.reverse();

toSource??

返回代表特定數(shù)組的數(shù)組常數(shù),可以用來建立新的數(shù)組?

?

valueOf??

取得數(shù)組值

?

數(shù)組類型判斷

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/cqlql/p/5673039.html

總結(jié)

以上是生活随笔為你收集整理的数组(待完成)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。