Array數(shù)組的基本操作(1)

數(shù)組是值的有序集合。

數(shù)組原型

Array.prototype.concat() ?[ES3]

(concat()方法合并兩個(gè)或兩個(gè)以上數(shù)組零远。此方法不更改現(xiàn)有數(shù)組婴谱,而是返回新數(shù)組)

語(yǔ)法:

var new_array = old_array.concat(value1[,value2[, ...[,valueN]]])

實(shí)例:

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

var arr2=['d','e','f'];

var arr3=arr1.concat(arr2);

// arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]


Array.prototype.copyWithin()? [ES6]

(copyWithin方法钾怔,在當(dāng)前數(shù)組內(nèi)部衅檀,將指定位置的成員復(fù)制到其他位置(會(huì)覆蓋原有成員)菇曲,然后返回當(dāng)前數(shù)組神僵。也就是說(shuō)熊经,使用這個(gè)方法,會(huì)修改當(dāng)前數(shù)組译柏。target(必需):從該位置開(kāi)始替換數(shù)據(jù)镣煮。start(可選):從該位置開(kāi)始讀取數(shù)據(jù),默認(rèn)為0鄙麦。如果為負(fù)值典唇,表示倒數(shù)。end(可選):到該位置前停止讀取數(shù)據(jù)胯府,默認(rèn)等于數(shù)組長(zhǎng)度介衔。如果為負(fù)值,表示倒數(shù)骂因。)

( copyWithin()方法是數(shù)組的淺拷貝部分炎咖, 而數(shù)組的大小沒(méi)有改變。)

語(yǔ)法:

arr.copyWithin(target)

arr.copyWithin(target,start)

arr.copyWithin(target,start,end)

實(shí)例:

['alpha','bravo','charlie','delta'].copyWithin(2,0);

// results in ["alpha", "bravo", "alpha", "bravo"]


Array.prototype.entries(). [ES6]

(entries()方法返回一個(gè)新數(shù)組的迭代器對(duì)象包含數(shù)組中的每個(gè)索引的鍵/值對(duì)寒波。)

語(yǔ)法:

a.entries()

實(shí)例:

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

var iterator = a.entries();

console.log(iterator.next().value); ?// [0, 'a']

console.log(iterator.next().value); ?// [1, 'b']

console.log(iterator.next().value); ?// [2, 'c']


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

var iterator = a.entries();

for(lete of iterator){

? ? console.log(e);

}// [0, 'a']// [1, 'b']// [2, 'c']

Array.prototype.every()??[ES5]

(every方法是數(shù)組的邏輯判定:對(duì)數(shù)組元素應(yīng)用指定對(duì)函數(shù)進(jìn)行判定乘盼,返回true 或 false)

語(yǔ)法:

arr.every(callback[,thisArg])

實(shí)例:

functionisBigEnough(element,index,array){

? ? ? ?return element >= 10;

}

[12,5,8,130,44].every(isBigEnough);// false

[12,54,18,130,44].every(isBigEnough);// true

[1,2,3,4,5,6,7,8].every(function(x){ x < 10; } ) //true 所有值<10

Array.prototype.fill()? [ES6]

(fill()方法填充數(shù)組中的所有從一開(kāi)始指數(shù)結(jié)束指標(biāo)與靜態(tài)值的元素)

語(yǔ)法:

arr.fill(value)

arr.fill(value,start = 0)

arr.fill(value,start = 0,end = this.length)

(value 值是必須的;start 開(kāi)始位置 俄烁,可選绸栅、默認(rèn)值為;end結(jié)束位置页屠,可選粹胯、默認(rèn)值為數(shù)組的length)

實(shí)例:

varnumbers=[1,2,3]

numbers.fill(1);


[1,2,3].fill(4);// [4, 4, 4]

[1,2,3].fill(4,1);// [1, 4, 4]

[1,2,3].fill(4,1,2);// [1, 4, 3]

[1,2,3].fill(4,1,1);// [1, 2, 3]

[1,2,3].fill(4,-3,-2);// [4, 2, 3]

[1,2,3].fill(4,NaN,NaN);// [1, 2, 3]

Array(3).fill(4);// [4, 4, 4]

[].fill.call({length:3},4);// {0: 4, 1: 4, 2: 4, length: 3}

Array.prototype.filter()? [ES5]

(filter()方法返回的是數(shù)組的一個(gè)子集<也是一個(gè)數(shù)組,新數(shù)組>辰企,傳遞的函數(shù)是用來(lái)邏輯判定的)

語(yǔ)法:

var newArray = arr.filter(callback[,thisArg])

( element:數(shù)組中正在處理的當(dāng)前元素风纠。index:數(shù)組中正在處理的當(dāng)前元素的索引。array:當(dāng)前數(shù)組牢贸。thisArg:fn函數(shù)中this指向.)

實(shí)例:

var words = ["spray","limit","elite","exuberant","destruction","present"];

var longWords = words.filter(function(word){return word.length > 6;})

// Filtered array longWords is ["exuberant", "destruction", "present"]

Array.prototype.find()??[ES6]

(find() 方法返回符合規(guī)定的函數(shù)的數(shù)組的第一個(gè)元素的值竹观。否則返回 undefinded)

語(yǔ)法:

arr.find(callback[,thisArg])

( element:數(shù)組中正在處理的當(dāng)前元素。index:數(shù)組中正在處理的當(dāng)前元素的索引潜索。array:當(dāng)前數(shù)組臭增。thisArg:fn函數(shù)中this指向.)

實(shí)例:

function isBigEnough(element){

? ? ?returnelement>=15;

}

[12,5,8,130,44].find(isBigEnough); ?// 130


function isPrime(element,index,array){

? ? var start=2;

? ? while(start<=Math.sqrt(element)){

? ? ? ? if(element%start++<1){

? ? ? ? ? ? ?returnfalse;

? ? ? ? }

? ? }

? ? ?return element>1;

}

console.log([4,6,8,12].find(isPrime)); ?// undefined, not found

console.log([4,5,8,12].find(isPrime)); ?// 5

Array.prototype.findIndex()? [ES6]

(findIndex()方法和find()很相似,findIndex(0) 的返回值是數(shù)組的索引帮辟,返回滿足條件的數(shù)組的第一個(gè)元素的索引速址。否則返回 -1)

語(yǔ)法:

arr.findIndex(callback[,thisArg])

( element:數(shù)組中正在處理的當(dāng)前元素。index:數(shù)組中正在處理的當(dāng)前元素的索引由驹。array:當(dāng)前數(shù)組芍锚。thisArg:fn函數(shù)中this指向.)

實(shí)例:

function isBigEnough(element){

? ? return element >= 15;

}

[12,5,8,130,44].findIndex(isBigEnough);

// index of 4th element in the Array is returned,

// so this will result in '3'


functionis Prime(element,index,array){

? ? ? var start = 2;

? ? ? while(start <= Math.sqrt(element)) {

? ? ? ? ? ? if(element%start++<1){

? ? ? ? ? ? ? ? ? ?return false;

? ? ? ? ? ? ?}

? ? ? ?}

? ? ? ? return element>1;

?}

console.log([4,6,8,12].findIndex(isPrime)); ? // -1, not found

console.log([4,6,7,12].findIndex(isPrime)); ? // 2

Array.prototype.forEach()? [ES5]

(foreach()方法用來(lái)遍歷數(shù)組中的每個(gè)元素)

語(yǔ)法:

arr.forEach(functioncallback(currentValue, index, array) {

? ? ?//your iterator

}[,thisArg]);

(currentValue :數(shù)組中正在處理的當(dāng)前元素的值。index:數(shù)組中正在處理的當(dāng)前元素的索引蔓榄。 array:當(dāng)前數(shù)組并炮。thisArg:回調(diào)執(zhí)行時(shí),使用此值(即referenceobject))

實(shí)例:

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

a.forEach(function(element){ ?

? ? ? console.log(element);

});

//a// b// c

(其實(shí)數(shù)組的遍歷有很多方法 ? for...of.. ?甥郑、for...in.. 等都可以)

Array.prototype.includes()? [ES7]

(includes()判定數(shù)組包含某元素逃魄,返回true或false適當(dāng)。)

語(yǔ)法:

arr.includes(searchElement)

arr.includes(searchElement,fromIndex)

(searchElement:搜索的元素澜搅,fromIndex:開(kāi)始搜索元素的索引伍俘,從該位置開(kāi)始搜索)

實(shí)例:

[1,2,3].includes(2);// true

[1,2,3].includes(4);// false

[1,2,3].includes(3,3);// false

[1,2,3].includes(3,-1);// true

[1,2,NaN].includes(NaN);// true


**以上是javascript數(shù)組的簡(jiǎn)單操作邪锌,具體以MDN為標(biāo)準(zhǔn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市癌瘾,隨后出現(xiàn)的幾起案子觅丰,更是在濱河造成了極大的恐慌,老刑警劉巖妨退,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妇萄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咬荷,警方通過(guò)查閱死者的電腦和手機(jī)冠句,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)幸乒,“玉大人懦底,你說(shuō)我怎么就攤上這事∈疟洌” “怎么了基茵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)壳影。 經(jīng)常有香客問(wèn)我拱层,道長(zhǎng),這世上最難降的妖魔是什么宴咧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任根灯,我火速辦了婚禮,結(jié)果婚禮上掺栅,老公的妹妹穿的比我還像新娘烙肺。我一直安慰自己,他們只是感情好氧卧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布桃笙。 她就那樣靜靜地躺著,像睡著了一般沙绝。 火紅的嫁衣襯著肌膚如雪搏明。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天闪檬,我揣著相機(jī)與錄音星著,去河邊找鬼。 笑死粗悯,一個(gè)胖子當(dāng)著我的面吹牛虚循,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼横缔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼铺遂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起剪廉,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤娃循,失蹤者是張志新(化名)和其女友劉穎炕檩,沒(méi)想到半個(gè)月后斗蒋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笛质,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年泉沾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妇押。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跷究,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敲霍,到底是詐尸還是另有隱情俊马,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布肩杈,位于F島的核電站柴我,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扩然。R本人自食惡果不足惜艘儒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一夫偶、第九天 我趴在偏房一處隱蔽的房頂上張望界睁。 院中可真熱鬧,春花似錦兵拢、人聲如沸翻斟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)访惜。三九已至,卻和暖如春截汪,著一層夾襖步出監(jiān)牢的瞬間疾牲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工衙解, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阳柔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓蚓峦,卻偏偏與公主長(zhǎng)得像舌剂,于是被迫代替她去往敵國(guó)和親济锄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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