數(shù)組上的方法——增刪改(pop赤惊,push吼旧,shift凰锡,unshift未舟,splice與slice)

pop

  1. 定義:刪除數(shù)組中的最后一個(gè)元素并返回該元素,此方法修改數(shù)組長度;

const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop()); // "tomato"
console.log(plants); // ["broccoli", "cauliflower", "cabbage", "kale"]

  1. 如果數(shù)組長度為0掂为,則返回 undefined;

console.log([].pop());

  1. 可以用call裕膀、apply等被類數(shù)組對象調(diào)用,會(huì)根據(jù)類數(shù)組對象的length屬性來決定最后一個(gè)元素的位置勇哗。如果沒有length屬性昼扛,則默認(rèn)為0,返回 undefined欲诺。

function f() {
console.log([].pop.call(arguments)); // d
}
f('a', 's', 'd')

push

  1. 定義:將一個(gè)或多個(gè)元素添加到數(shù)組末尾抄谐,并返回?cái)?shù)組長度。此方法改變數(shù)組長度扰法;

const animals = ['pigs', 'goats', 'sheep'];
const count = animals.push('cows');
console.log(count); // 4
console.log(animals);// ["pigs", "goats", "sheep", "cows"]

  1. 可以結(jié)合call()apply()使用蛹含,根據(jù)length屬性決定插入位置。沒有length屬性則視為0塞颁。

var obj = {
length: 0,
addElem: function addElem (elem) {
// obj.length is automatically incremented
// every time an element is added.
[].push.call(this, elem);
}
};
// Let's add some empty objects just to illustrate.
obj.addElem({});
obj.addElem({});
console.log(obj.length);
// → 2

shift

  1. 定義: 刪除數(shù)組中的第一個(gè)元素并返回浦箱,此方法會(huì)改變原數(shù)組長度。

let arr = [,1,2];
arr.shift() // undefined;
arr.shift() // 1;
arr.shift() // 2;
arr.shift() // undefined;

  1. while循環(huán)中使用shift

var names = ["Andrew", "Edward", "Paul", "Chris" ,"John"];
while( (i = names.shift()) !== undefined ) {
console.log(i); // Andrew, Edward, Paul, Chris, John
}

unshift

  1. 定義:將一個(gè)或多個(gè)元素添加到數(shù)組開頭祠锣,并返回該數(shù)組的新長度酷窥;
  2. 傳入的多個(gè)參數(shù)會(huì)以塊的形式插入,順序不變伴网;

let arr = [1,2,3];
arr.unshift(4, 5) // 5
arr // [4,5,1,2,3]

splice

  1. 定義:從指定位置開始刪除指定個(gè)數(shù)的元素蓬推,可以在該位置增加新的元素。此方法會(huì)改變原數(shù)組澡腾,實(shí)現(xiàn)增刪改沸伏,參數(shù):
    @params{start}: 起始位置索引募逞,如果超出數(shù)組長度,則從數(shù)組末尾開始馋评;如果是負(fù)數(shù)放接,則逆序,如果負(fù)數(shù)的絕對值大于數(shù)組長度留特,則從0位開始纠脾;
    @params{deleteCount}:要?jiǎng)h除的元素個(gè)數(shù),包含 start 位置元素蜕青,省略掉或者大于start起的元素個(gè)數(shù)苟蹈,則把start之后的全刪除。為0或者負(fù)數(shù)右核,則不刪除元素慧脱;
    @item1,item2贺喝,...: 要插入的元素菱鸥,
    @return 返回被修改的元素組成的數(shù)組,沒有刪除則返回空數(shù)組躏鱼。

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum', 'guitar');
// 運(yùn)算后的 myFish: ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// 被刪除的元素: [], 沒有元素被刪除

slice

  1. 定義: 淺拷貝數(shù)組的一部分作為一個(gè)新的數(shù)組返回氮采。原數(shù)組不變。參數(shù):
    @params {startIndex} 索引前閉染苛,負(fù)數(shù)逆序鹊漠,默認(rèn)為0,超出數(shù)組范圍茶行,返回空數(shù)組躯概;
    @params {endIndex} 索引后開,負(fù)數(shù)逆序畔师,默認(rèn)到數(shù)組末尾娶靡。

var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3); // ['Orange','Lemon']

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市茉唉,隨后出現(xiàn)的幾起案子固蛾,更是在濱河造成了極大的恐慌,老刑警劉巖度陆,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艾凯,死亡現(xiàn)場離奇詭異,居然都是意外死亡懂傀,警方通過查閱死者的電腦和手機(jī)趾诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恃泪,你說我怎么就攤上這事郑兴。” “怎么了贝乎?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵情连,是天一觀的道長。 經(jīng)常有香客問我览效,道長却舀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任锤灿,我火速辦了婚禮挽拔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘但校。我一直安慰自己螃诅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布状囱。 她就那樣靜靜地躺著术裸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浪箭。 梳的紋絲不亂的頭發(fā)上穗椅,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音奶栖,去河邊找鬼。 笑死门坷,一個(gè)胖子當(dāng)著我的面吹牛宣鄙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播默蚌,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼冻晤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绸吸?” 一聲冷哼從身側(cè)響起鼻弧,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤锦茁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后度帮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年瞳秽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了率翅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片练俐。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冕臭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丘喻,我是刑警寧澤念颈,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站嗡靡,受9級特大地震影響窟感,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿祈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一躏嚎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卢佣,春花似錦、人聲如沸戈鲁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸣皂。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寞缝,已是汗流浹背癌压。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荆陆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓帜消,卻偏偏與公主長得像浓体,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子娄猫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

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