array

array是js原生對(duì)象馏予,同時(shí)也是一個(gè)構(gòu)造函數(shù)复斥,可以用他生成新的數(shù)組霉旗,(一般不要用召川,參數(shù)不同結(jié)果有差異)
var arr=new Array(2);
arr.length // 2
arr // [ empty x 2 ]

靜態(tài)方法 Array.isArray();

Array.isArray();方法返回一個(gè)布爾值南缓,表示參數(shù)是否是數(shù)組,它可以彌補(bǔ)typeof運(yùn)算符的不足荧呐。

實(shí)例方法

valueOf();toString();

valueOf方法是一個(gè)所有對(duì)象都擁有的方法汉形,表示該對(duì)象求值。不同對(duì)象的valueOf方法不盡一致倍阐,數(shù)組的valueOf方法返回?cái)?shù)組本身

var arr=[1,2,3];
arr.valueOf();//[1,2,3]

toString方法也是對(duì)象的通用方法概疆,數(shù)組的toString方法返回?cái)?shù)組的字符串形式。

var arr=[1,2,3];
arr.toString();//"1,2,3"
var arr=[1,2,3,[4,5,6]];
arr.toString();//"1,2,3,4,5,6"

push();pop();

push方法用于在數(shù)組的末端添加一個(gè)或多個(gè)元素峰搪,并返回添加新元素后的數(shù)組長(zhǎng)度岔冀,注意,該方法會(huì)改變?cè)瓟?shù)組

var arr=[];
arr.push(1);//1
arr.push('a');//2
arr.push(true,{})//4
arr //[1,'a',true,{}]

pop方法用于刪除數(shù)組的最后一個(gè)元素,并返回該元素概耻,改變?cè)亟M

var arr=['a','b','c'];
arr.pop();//'c'
arr //['a','b']

對(duì)空數(shù)組使用pop方法使套,不報(bào)錯(cuò),undefined

后進(jìn)先出

shift(),unshift()

shift()方法用于刪除數(shù)組的第一個(gè)元素鞠柄,并返回該元素侦高。注意,該方法會(huì)改變?cè)瓟?shù)組厌杜。

var a = ['a', 'b', 'c'];
a.shift() // 'a'
a // ['b', 'c']

shift()方法可以遍歷并清空一個(gè)數(shù)組奉呛。

var list = [1, 2, 3, 4];
var item;
while (item = list.shift()) {
  console.log(item);
}
list // []   并不可靠,判斷0的問(wèn)題

push()和shift()結(jié)合使用,就構(gòu)成了“先進(jìn)先出”的隊(duì)列結(jié)構(gòu)(queue)瞧壮。

unshift()方法用于在數(shù)組的第一個(gè)位置添加元素危尿,并返回添加新元素后的數(shù)組長(zhǎng)度。注意馁痴,該方法會(huì)改變?cè)瓟?shù)組。

var a = ['a', 'b', 'c'];
a.unshift('x'); // 4
a // ['x', 'a', 'b', 'c']

unshift()方法可以接受多個(gè)參數(shù)肺孤,這些參數(shù)都會(huì)添加到目標(biāo)數(shù)組頭部罗晕。

var arr = [ 'c', 'd' ];
arr.unshift('a', 'b') // 4
arr // [ 'a', 'b', 'c', 'd' ]

join()

join()方法以指定參數(shù)作為分隔符,將所有數(shù)組成員連接為一個(gè)字符串返回赠堵。如果不提供參數(shù)小渊,默認(rèn)用逗號(hào)分隔。

var a = [1, 2, 3, 4];
a.join(' ') // '1 2 3 4'
a.join(' | ') // "1 | 2 | 3 | 4"
a.join() // "1,2,3,4"

如果數(shù)組成員是undefined或null或空位茫叭,會(huì)被轉(zhuǎn)成空字符串酬屉。

[undefined, null].join('#')
// '#'
['a',, 'b'].join('-')
// 'a--b'

通過(guò)call方法,這個(gè)方法也可以用于字符串或類似數(shù)組的對(duì)象揍愁。

Array.prototype.join.call('hello', '-')
// "h-e-l-l-o"

var obj = { 0: 'a', 1: 'b', length: 2 };
Array.prototype.join.call(obj, '-')
// 'a-b'

concat()

concat方法用于多個(gè)數(shù)組的合并呐萨。它將新數(shù)組的成員,添加到原數(shù)組成員的后部莽囤,然后返回一個(gè)新數(shù)組谬擦,原數(shù)組不變。

['hello'].concat(['world'])
// ["hello", "world"]

['hello'].concat(['world'], ['!'])
// ["hello", "world", "!"]

[].concat({a: 1}, {b: 2})
// [{ a: 1 }, { b: 2 }]

[2].concat({a: 1})
// [2, {a: 1}]

除了數(shù)組作為參數(shù)朽缎,concat也接受其他類型的值作為參數(shù)惨远,添加到目標(biāo)數(shù)組尾部。

[1, 2, 3].concat(4, 5, 6)
// [1, 2, 3, 4, 5, 6]

如果數(shù)組成員包括對(duì)象话肖,concat方法返回當(dāng)前數(shù)組的一個(gè)淺拷貝北秽。所謂“淺拷貝”,指的是新數(shù)組拷貝的是對(duì)象的引用最筒。

var obj = { a: 1 };
var oldArray = [obj];

var newArray = oldArray.concat();

obj.a = 2;
newArray[0].a // 2

reverse()

reverse方法用于顛倒排列數(shù)組元素贺氓,返回改變后的數(shù)組。注意床蜘,該方法將改變?cè)瓟?shù)組掠归。

var a = ['a', 'b', 'c'];

a.reverse() // ["c", "b", "a"]
a // ["c", "b", "a"]

slice()

slice方法用于提取目標(biāo)數(shù)組的一部分,返回一個(gè)新數(shù)組悄泥,原數(shù)組不變虏冻。

arr.slice(start, end);

slice方法的一個(gè)重要應(yīng)用,是將類似數(shù)組的對(duì)象轉(zhuǎn)為真正的數(shù)組弹囚。

Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })
// ['a', 'b']

Array.prototype.slice.call(document.querySelectorAll("div"));
Array.prototype.slice.call(arguments);

splice()

splice方法用于刪除原數(shù)組的一部分成員厨相,并可以在刪除的位置添加新的數(shù)組成員,返回值是被刪除的元素。注意蛮穿,該方法會(huì)改變?cè)瓟?shù)組庶骄。

arr.splice(start, count, addElement1, addElement2, ...);
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2) // ["e", "f"]
a // ["a", "b", "c", "d"]
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2, 1, 2) // ["e", "f"]
a // ["a", "b", "c", "d", 1, 2]

如果只是單純地插入元素,splice方法的第二個(gè)參數(shù)可以設(shè)為0践磅。

var a = [1, 1, 1];

a.splice(1, 0, 2) // []
a // [1, 2, 1, 1]

如果只提供第一個(gè)參數(shù)单刁,等同于將原數(shù)組在指定位置拆分成兩個(gè)數(shù)組。

var a = [1, 2, 3, 4];
a.splice(2) // [3, 4]
a // [1, 2]

sort()

sort方法對(duì)數(shù)組成員進(jìn)行排序府适,默認(rèn)是按照字典順序排序羔飞。排序后,原數(shù)組將被改變檐春。

['d', 'c', 'b', 'a'].sort()
// ['a', 'b', 'c', 'd']

[4, 3, 2, 1].sort()
// [1, 2, 3, 4]

[11, 101].sort()
// [101, 11]

[10111, 1101, 111].sort()
// [10111, 1101, 111]

如果想讓sort方法按照自定義方式排序逻淌,可以傳入一個(gè)函數(shù)作為參數(shù)。

[10111, 1101, 111].sort(function (a, b) {
  return a - b;
})
// [111, 1101, 10111]

map()

map方法將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù)疟暖,然后把每一次的執(zhí)行結(jié)果組成一個(gè)新數(shù)組返回卡儒。

var numbers = [1, 2, 3];

numbers.map(function (n) {
  return n + 1;
});
// [2, 3, 4]

numbers
// [1, 2, 3]

map方法接受一個(gè)函數(shù)作為參數(shù)。該函數(shù)調(diào)用時(shí)俐巴,map方法向它傳入三個(gè)參數(shù):當(dāng)前成員骨望、當(dāng)前位置和數(shù)組本身。

[1, 2, 3].map(function(elem, index, arr) {
  return elem * index;
});
// [0, 2, 6]

map方法還可以接受第二個(gè)參數(shù)欣舵,用來(lái)綁定回調(diào)函數(shù)內(nèi)部的this變量(詳見(jiàn)《this 變量》一章)锦募。

var arr = ['a', 'b', 'c'];

[1, 2].map(function (e) {
  return this[e];
}, arr)
// ['b', 'c']
1-Object.assign() :實(shí)現(xiàn)的是對(duì)對(duì)象的淺拷貝。返回值是新生成的對(duì)象邻遏,通常用于對(duì)象的合并糠亩,相同的屬性后者會(huì)覆蓋前者。
2-RegExpObject.exec() :如果exec()找到了匹配的文本准验,則返回一個(gè)結(jié)果數(shù)組赎线。否則返回null。此數(shù)組的第0個(gè)元素是正則表達(dá)式相匹配的文本
3-array.entrise():entries() 方法返回一個(gè)數(shù)組的迭代對(duì)象糊饱,該對(duì)象包含數(shù)組的鍵值對(duì)(key/value).迭代對(duì)象中數(shù)組的索引值作為key數(shù)組元素作為value
4-Set()和Map() :Map() 接受一個(gè)二維數(shù)組垂寥,key/value形式存儲(chǔ),Set() 一維數(shù)組另锋,可以用來(lái)去重
5-fill():數(shù)組初始化的時(shí)候義可以用來(lái)填充初始值
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滞项,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子夭坪,更是在濱河造成了極大的恐慌文判,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件室梅,死亡現(xiàn)場(chǎng)離奇詭異戏仓,居然都是意外死亡疚宇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)赏殃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)敷待,“玉大人,你說(shuō)我怎么就攤上這事仁热“褚荆” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵抗蠢,是天一觀的道長(zhǎng)举哟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)物蝙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任敢艰,我火速辦了婚禮诬乞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钠导。我一直安慰自己震嫉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布牡属。 她就那樣靜靜地躺著票堵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逮栅。 梳的紋絲不亂的頭發(fā)上悴势,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音措伐,去河邊找鬼特纤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侥加,可吹牛的內(nèi)容都是我干的捧存。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼担败,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昔穴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起提前,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吗货,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后狈网,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體卿操,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡警检,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了害淤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扇雕。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖窥摄,靈堂內(nèi)的尸體忽然破棺而出镶奉,到底是詐尸還是另有隱情,我是刑警寧澤崭放,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布哨苛,位于F島的核電站,受9級(jí)特大地震影響币砂,放射性物質(zhì)發(fā)生泄漏建峭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一决摧、第九天 我趴在偏房一處隱蔽的房頂上張望亿蒸。 院中可真熱鬧,春花似錦掌桩、人聲如沸边锁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茅坛。三九已至,卻和暖如春则拷,著一層夾襖步出監(jiān)牢的瞬間贡蓖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工煌茬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摩梧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓宣旱,卻偏偏與公主長(zhǎng)得像仅父,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浑吟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 構(gòu)造函數(shù) Array是JavaScript的內(nèi)置對(duì)象笙纤,同時(shí)也是一個(gè)構(gòu)造函數(shù),可以用它生成新的數(shù)組组力。 上面代碼中省容,A...
    許先生__閱讀 311評(píng)論 0 1
  • 1 構(gòu)造函數(shù) 上面代碼中,Array構(gòu)造函數(shù)的參數(shù)2燎字,表示生成一個(gè)兩個(gè)成員的數(shù)組腥椒,每個(gè)位置都是空值阿宅。 如果沒(méi)有使用...
    徵羽kid閱讀 427評(píng)論 0 0
  • 構(gòu)造函數(shù) Array是JavaScript的內(nèi)置對(duì)象,同時(shí)也是一個(gè)構(gòu)造函數(shù)笼蛛,可以用它生成新的數(shù)組洒放。Array構(gòu)造函...
    zjh111閱讀 771評(píng)論 0 0
  • (一) 數(shù)組的定義 數(shù)組(array)是按次序排列的一組值。每個(gè)值的位置都有編號(hào)(從0開(kāi)始)滨砍,整個(gè)數(shù)組用方括號(hào)表示...
    woow_wu7閱讀 46,830評(píng)論 0 6
  • 判斷數(shù)組 Array.isArray() Array.isArray方法用來(lái)判斷一個(gè)值是否為數(shù)組返回布爾值往湿,比ty...
    coolheadedY閱讀 443評(píng)論 0 0