js高三精煉 —— 引用類型(上)


Object

// 以下兩種表示方式一樣
var p = new Object(); 
var p = {};
//對象屬性可用.訪問污桦,也可以用方括號
p.name 等同于 p['name']亩歹,后一種方式用在特殊情況如
p['first name']//名稱中有空格,無法用.訪問

Array

js中數(shù)組的兩個(gè)特點(diǎn):

  1. 數(shù)組每一項(xiàng)類型可以不同
  2. 數(shù)組大小可以動(dòng)態(tài)調(diào)整
  3. 數(shù)組最大可以容納 4294967295個(gè)項(xiàng)
var ls = new Array();
var  ls = new Array(4);
var ls = new Array('aaa','bbb','ccc');
var ls = [];
var ls= ['aaa','bbb','ccc'];
//數(shù)組檢測(用ES5 isArray方法)
Array.isArray(ls) // true

var a = [1,2,3,4,5,65];
a.toString();//輸出逗號分隔的字符串 "1,2,3,4,5,65"
a.valueOf();//依然輸出數(shù)組 [1, 2, 3, 4, 5, 65]
a.join('$');//join只接收一個(gè)參數(shù)凡橱,即分隔符 "1$2$3$4$5$65"

數(shù)組的LIFO(棧)操作:

var a = [1,2,3,4,5,6];
a.push(7); 
a.push(8,9); // [1,2,3,4,5,6,7,8,9]
a.pop();  // [1,2,3,4,5,6,7,8]

數(shù)組的FILO(隊(duì)列)操作:

a.shift(); // [2,3,4,5,6,7,8];
a.unshift(100); //[100,2,3,4,5,6,7,8];

數(shù)組的排序
-sort方法可以傳入一個(gè)compare方法小作,制定排序的方法

let a = [2,1,5,9,0];
//a.reverse();

function sortByAsc(value1,value2){
    return value1-value2>0;
}
function sortByDesc(value1,value2){
    return value1-value2<0;
}
a.sort(sortByAsc); //[0,1,2,5,9]
a.sort(sortByDesc);//[9,5,2,1,0]

console.log(a);

數(shù)組的操作方法:

  • concat方法為當(dāng)前數(shù)組穿件一個(gè)新副本,若傳入?yún)?shù)稼钩,則將傳入的每一項(xiàng)添加到這個(gè)副本的末尾顾稀。slice方法根據(jù)傳入的下標(biāo)產(chǎn)生新數(shù)組

  • <u> concat和slice方法都不會對原來的數(shù)組產(chǎn)生影響</u>

  • slice(1,3)包括1和2,不包括3

let a = [2,1,5,9,0];
let b = ['aaa','bbb','ccc'];
let c = a.concat(b);
let d = c.slice(0,4);
console.log(c,d); //[ 2, 1, 5, 9, 0, 'aaa', 'bbb', 'ccc' ] [ 2, 1, 5, 9 ]
console.log(a); //[ 2, 1, 5, 9, 0 ]

  • splice(起始位置,要?jiǎng)h除的項(xiàng)的個(gè)數(shù), 要插入的任意數(shù)量項(xiàng)...),返回值是被刪除的項(xiàng)坝撑,若沒有項(xiàng)刪除則返回一個(gè)空數(shù)組

let a = [1,2,3,4,5,6];
let removed = a.splice(1,2);// 從下標(biāo)1開始静秆,包括1,刪除2個(gè)元素 
console.log(a,removed); // [ 1, 4, 5, 6 ] [ 2, 3 ]

let removed = a.splice(1,0);// [ 1,2,3, 4, 5, 6 ] [ ]

let removed = a.splice(1,1,666,777,888); //[ 1, 666, 777, 888, 3, 4, 5, 6 ] [ 2 ]

  • 數(shù)組的迭代方法

every(),some(),filter(),forEach(),map()
這些方法都不會修改原始數(shù)組

let a = [1, 2, 3, 4, 5, 6];
//every
let result = a.every(function(element, index, array) {
    return element > 2
});
console.log(result);//false

//some
let result = a.some(function(element, index, array) {
    return element > 2
});
console.log(result);//true

//filter
let result = a.filter(function(element, index, array) {
    return element > 2
});
console.log(result);//[ 3, 4, 5, 6 ]

//map: 返回一個(gè)新數(shù)組巡李,這個(gè)數(shù)組的每一項(xiàng)都是在原始數(shù)組中的對應(yīng)項(xiàng)上運(yùn)行傳入函數(shù)的結(jié)果
let result = a.map(function(element, index, array) {
    return element * 2;
});
console.log(result);//[ 2, 4, 6, 8, 10, 12 ]

//forEach抚笔,類似for
  • 數(shù)組的歸并方法

Recude(), reduceRight()
迭代數(shù)組每一項(xiàng),最后構(gòu)建一個(gè)返回值侨拦,reduce從第一項(xiàng)開始殊橙,reduceRight從最后一項(xiàng)開始

let a = [1, 2, 3, 4, 5, 6];
let result = a.reduce(function(preview,current,index,array){
    console.log('preview: '+ preview, ' current: '+current,
         '\nindex: '+index,' array: '+array);
    return preview+current;
});
console.log(result);
// preview: 1  current: 2
// index: 1  array: 1,2,3,4,5,6
// preview: 3  current: 3
// index: 2  array: 1,2,3,4,5,6
// preview: 6  current: 4
// index: 3  array: 1,2,3,4,5,6
// preview: 10  current: 5
// index: 4  array: 1,2,3,4,5,6
// preview: 15  current: 6
// index: 5  array: 1,2,3,4,5,6
// 21 

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市阳谍,隨后出現(xiàn)的幾起案子蛀柴,更是在濱河造成了極大的恐慌,老刑警劉巖矫夯,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸽疾,死亡現(xiàn)場離奇詭異,居然都是意外死亡训貌,警方通過查閱死者的電腦和手機(jī)制肮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門冒窍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豺鼻,你說我怎么就攤上這事综液。” “怎么了儒飒?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵谬莹,是天一觀的道長。 經(jīng)常有香客問我桩了,道長附帽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任井誉,我火速辦了婚禮蕉扮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颗圣。我一直安慰自己喳钟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布在岂。 她就那樣靜靜地躺著奔则,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔽午。 梳的紋絲不亂的頭發(fā)上应狱,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機(jī)與錄音祠丝,去河邊找鬼。 笑死除嘹,一個(gè)胖子當(dāng)著我的面吹牛写半,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尉咕,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叠蝇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了年缎?” 一聲冷哼從身側(cè)響起悔捶,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎单芜,沒想到半個(gè)月后蜕该,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劳殖,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芋肠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逊谋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绢淀,死狀恐怖萤悴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情皆的,我是刑警寧澤覆履,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站费薄,受9級特大地震影響硝全,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜义锥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一柳沙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拌倍,春花似錦赂鲤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梗顺,卻和暖如春泡孩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寺谤。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工仑鸥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人变屁。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓眼俊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粟关。 傳聞我的和親對象是個(gè)殘疾皇子疮胖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

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

  • 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的 JavaScript 類型 使用基本類型和基本包裝類型 引用類型的...
    悶油瓶小張閱讀 681評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評論 0 4
  • 由于最近都在freecodecamp上刷代碼,運(yùn)用了很多JavaScript數(shù)組的方法闷板,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 1,975評論 0 16
  • 轉(zhuǎn)自:http://blog.csdn.net/yaozhuoyu/article/details/9798213...
    Cooperluffy丨路飛閱讀 483評論 0 0
  • 生活在這個(gè)看似繁華卻又空虛的世界上澎灸,每天都會遇到形形色色的人,每天都扮演著不同的角色遮晚。 我是一個(gè)普通的大專...
    Sunny的心情閱讀 369評論 0 2