js數(shù)組有哪些API

一個(gè)數(shù)組有這些方法
concat

concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組导而。該方法不會(huì)改變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。

//把 concat() 中的參數(shù)連接到數(shù)組 a
var a = [1,2,3]
a  // [1, 2, 3]
a.concat(4,5)  //[1, 2, 3, 4, 5]  返回被連接數(shù)組的一個(gè)副本
a // [1, 2, 3]  該方法不會(huì)改變現(xiàn)有的數(shù)組
------------------------------------------------------

//使用 concat()連接兩個(gè)數(shù)組
var arr1 = ["George","John","Thomas"]
var arr2 = ["James","Adrew","Martin"]
arr1.concat(arr2) // ["George", "John", "Thomas", "James", "Adrew", "Martin"] 
//返回被連接數(shù)組的一個(gè)副本
arr1 // ["George", "John", "Thomas"] 不會(huì)改變現(xiàn)有的數(shù)組
---------------------------------------------------------------------------

//如果連接3個(gè)數(shù)組
arr1.concat(arr2,arr3)

constructor

constructor n.構(gòu)造器
返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用
按照自己的理解的話,就是指向了是誰(shuí)構(gòu)造了自己。哄孤。

//判斷自己的類型
var test=new Array();
if (test.constructor==Array){
    document.write("This is an Array");
}
if (test.constructor==Boolean){
    document.write("This is a Boolean");
}
if (test.constructor==Date){
    document.write("This is a Date");
}
if (test.constructor==String){
    document.write("This is a String");
}
//This is an Array

這樣看起來(lái)好像和instanceof很像啊。疑問(wèn):constructor和instanceof有什么區(qū)別吹截?

--------------------------------------------------------------------------
function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);  
bill.constructor   //bill的由誰(shuí)構(gòu)造的
//function employee(name, job, born){
//    this.name = name; 
//    this.job = job; 
//    this.born = born
//;}

copyWithin

copyWithin() 方法淺復(fù)制數(shù)組的一部分到同一數(shù)組中的另一個(gè)位置瘦陈,并返回它,而不修改其大小波俄。會(huì)改變?cè)瓟?shù)組晨逝。

arr.copyWithin(target[, start[, end]])
target //從哪個(gè)地方修改,從0開(kāi)始計(jì)算
start //從哪里開(kāi)始復(fù)制懦铺,從0開(kāi)始計(jì)算
end  //從哪里結(jié)束復(fù)制捉貌,從0開(kāi)始計(jì)算,不包括這個(gè)下標(biāo)值

a = [0,1,2,3,4,5]
a.copyWithin(3,0,2)   // [0, 1, 2, 0, 1, 5]  從第三個(gè)位置修改0~2(0,1)。
a //[0, 1, 2, 0, 1, 5]  改變?cè)瓟?shù)組

entries

entries() 方法返回一個(gè)新的Array Iterator對(duì)象趁窃,該對(duì)象包含數(shù)組中每個(gè)索引的鍵/值對(duì)牧挣。
Array Iterator是對(duì)象,它的原型(__proto__:Array Iterator)上有一個(gè)next方法醒陆,可用用于遍歷迭代器取得原數(shù)組的[key,value]瀑构。

var a = [1,2,3]
var aa = a.entries()
aa  //Array Iterator {}  返回一個(gè)新的Array Iterator對(duì)象
aa.next() //{value: Array(2), done:false, value: (2) [0, 1], __proto__: Object}
aa.next() //{value: Array(2), done:false, value: (2) [1, 2], __proto__: Object}
aa.next() //{value: Array(2), done:false, value: (2) [2, 3], __proto__: Object}
aa.next()  //{value: undefined, done: true}  找不到
aa.next()  //{value: undefined, done: true}  找不到
aa.next()  //{value: undefined, done: true}  找不到

aa.next()返回值
/*{value: Array(2), done: false}
          done:false
          value:(2) [0, "a"]
           __proto__: Object
*/
// iterator.next()返回一個(gè)對(duì)象肘习,對(duì)于有元素的數(shù)組,
// 是next{ value: Array(2), done: false }厕宗;
// next.done 用于指示迭代器是否完成:在每次迭代時(shí)進(jìn)行更新而且都是false茂附,
// 直到迭代器結(jié)束done才是true。
// next.value是一個(gè)["key":"value"]的數(shù)組地熄,是返回的迭代器中的元素值。

entries()其他方法 | MDN


every

every() 方法測(cè)試數(shù)組的所有元素是否都通過(guò)了指定函數(shù)的測(cè)試。

arr.every(callback[, thisArg])
// callback 用來(lái)測(cè)試每個(gè)元素的函數(shù)像屋。
// thisArg 執(zhí)行 callback 時(shí)使用的 this 值。

every 方法為數(shù)組中的每個(gè)元素執(zhí)行一次 callback 函數(shù)边篮,直到它找到一個(gè)使 callback 返回 false(表示可轉(zhuǎn)換為布爾值 false 的值)的元素己莺。如果發(fā)現(xiàn)了一個(gè)這樣的元素,every 方法將會(huì)立即返回 false戈轿。否則凌受,callback 為每一個(gè)元素返回 true,every 就會(huì)返回 true思杯。
callback 只會(huì)為那些已經(jīng)被賦值的索引調(diào)用胜蛉。不會(huì)為那些被刪除或從來(lái)沒(méi)被賦值的索引調(diào)用。
callback 被調(diào)用時(shí)傳入三個(gè)參數(shù):元素值色乾,元素的索引誊册,原數(shù)組。
every 遍歷的元素范圍在第一次調(diào)用 callback 之前就已確定了暖璧。在調(diào)用 every 之后添加到數(shù)組中的元素不會(huì)被 callback 訪問(wèn)到案怯。
every 和數(shù)學(xué)中的"所有"類似,當(dāng)所有的元素都符合條件才返回true澎办。另外嘲碱,空數(shù)組也是返回true。

function callback(a){ 
    return(a>=8)
}
var passed1 = [8,9,10,12]
passed1.every(callback)  //true
var passed2= [8,9,1,10]
passed2.every(callback)  //false

fill

fill() 方法用一個(gè)固定值填充一個(gè)數(shù)組中從起始索引到終止索引內(nèi)的全部元素局蚀。
fill和copyWithin用法很像悍汛,fill是自定義修改數(shù)組,改變?cè)瓟?shù)組至会;copyWithin是復(fù)制數(shù)組元素到指定位置离咐,改變?cè)瓟?shù)組。

arr.fill(value[, start[, end]])
//value 用來(lái)填充數(shù)組元素的值。
//start 起始索引宵蛀,默認(rèn)值為0昆著。
//end 終止索引,默認(rèn)值為 this.length术陶。

[1, 2, 3].fill(4);               // [4, 4, 4] 替換值為4
[1, 2, 3].fill(4, 1);            // [1, 4, 4] 替換值為4凑懂,位置從1~3(不包括)
[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3] 替換值為4,位置從1~2(不包括)
[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3] 替換值為4梧宫,位置從1~1(不包括)
[1, 2, 3].fill(4, 3, 3);         // [1, 2, 3] 替換值為4接谨,位置從3~3(不包括)
[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3] 位置從(3+-3)~(3+-2)=>0~1(不包括)
[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3] 替換值4,
[1, 2, 3].fill(4, 3, 5);         // [1, 2, 3] 替換值為4 從4~5(不包括)
\Array(3).fill(4);                // [4, 4, 4] 新數(shù)組,替換值為4
\[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3} 
\//綁定this塘匣,使用this的length脓豪,把4填充到this數(shù)組里面

\// Objects by reference.
var arr = Array(3).fill({}) // [{}, {}, {}];
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]


filter

filter() 方法創(chuàng)建一個(gè)新數(shù)組, 其包含通過(guò)所提供函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素。


find
findIndex
forEach
includes
indexOf
join
keys
lastIndexOf
length
map
pop
push
reduce
reduceRight
reverse
shift
slice
some
sort
splice
toLocaleString
toString
unshift

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忌卤,一起剝皮案震驚了整個(gè)濱河市扫夜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驰徊,老刑警劉巖笤闯,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異棍厂,居然都是意外死亡颗味,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門牺弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浦马,“玉大人,你說(shuō)我怎么就攤上這事例驹【韬” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鹃锈,是天一觀的道長(zhǎng)荤胁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)屎债,這世上最難降的妖魔是什么仅政? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮盆驹,結(jié)果婚禮上圆丹,老公的妹妹穿的比我還像新娘。我一直安慰自己躯喇,他們只是感情好辫封,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布硝枉。 她就那樣靜靜地躺著,像睡著了一般倦微。 火紅的嫁衣襯著肌膚如雪妻味。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天欣福,我揣著相機(jī)與錄音责球,去河邊找鬼。 笑死拓劝,一個(gè)胖子當(dāng)著我的面吹牛雏逾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郑临,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栖博,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了牧抵?” 一聲冷哼從身側(cè)響起笛匙,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤侨把,失蹤者是張志新(化名)和其女友劉穎犀变,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體秋柄,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡获枝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了骇笔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片省店。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖笨触,靈堂內(nèi)的尸體忽然破棺而出懦傍,到底是詐尸還是另有隱情,我是刑警寧澤芦劣,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布粗俱,位于F島的核電站,受9級(jí)特大地震影響虚吟,放射性物質(zhì)發(fā)生泄漏寸认。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一串慰、第九天 我趴在偏房一處隱蔽的房頂上張望偏塞。 院中可真熱鬧,春花似錦邦鲫、人聲如沸灸叼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)古今。三九已至慎冤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沧卢,已是汗流浹背蚁堤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留但狭,地道東北人披诗。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像立磁,于是被迫代替她去往敵國(guó)和親呈队。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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