數(shù)組對象常用方法

目錄

文檔地址: http://www.runoob.com/jsref/jsref-obj-array.html

  1. push 向數(shù)組的末尾添加一個或更多元素,并返回新的長度。
  2. unshift 向數(shù)組的開頭添加一個或更多元素驹碍,并返回新的長度。
  3. pop 刪除數(shù)組的最后一個元素并返回刪除的元素。
  4. shift 刪除并返回數(shù)組的第一個元素(知道即可,用得很少)。
  5. reverse 反轉(zhuǎn)數(shù)組的元素順序晶衷。
  6. find 返回符合傳入測試(函數(shù))條件的數(shù)組元素。
  7. findIndex 返回符合傳入測試(函數(shù))條件的數(shù)組元素索引阴孟。
  8. slice 選取數(shù)組的的一部分晌纫,并返回一個新數(shù)組。
  9. splice 從數(shù)組中添加或刪除元素温眉。
  10. join 把數(shù)組的所有元素放入一個字符串缸匪。
  11. forEach 迭代數(shù)組翁狐。
  12. map 通過指定函數(shù)處理數(shù)組的每個元素类溢,并返回處理后的數(shù)組。
  13. filter 檢測數(shù)值元素露懒,并返回符合條件所有元素的數(shù)組闯冷。
  14. indexOf 搜索數(shù)組中的元素,并返回它所在的位置懈词。
  15. includes 判斷一個數(shù)組是否包含一個指定的值
  16. isArray 判斷對象是否為數(shù)組蛇耀。
  17. sort 數(shù)組排序

具體例子

  1. push 從后面添加一個成員
var arr = [1,2,3];
    arr.push(4); 
    console.log(arr); // [1,2,3,4]

  1. unshift 從數(shù)組前面添加一個成員
 var arr = [1, 2, 3];
    arr.unshift(0);
    console.log(arr); // [0,1,2,3]

  1. pop 刪除數(shù)組的最后一個成員
var arr = [1,2,3,4];
arr.pop();
console.log(arr); // [1,2,3]

  1. shift 刪除數(shù)組的第一個成員
var arr = [1,2,3,4];
arr.shift();
console.log(arr); // [2,3,4]

  1. reverse 反轉(zhuǎn)數(shù)組的元素順序
var arr = [1,2,3];
arr.reverse(); 
console.log(arr); // [3,2,1]

  1. find 查找符合條件的數(shù)組成員
 var arr = [
        { name: '鄧紫棋', age: 20 },
        { name: '張碧晨', age: 30 },
        { name: '張靚穎', age: 25 },
        { name: '薛之謙', age: 28 }
    ]
    // js5寫法
    var person = arr.find(function(item) {
        return item.name === '薛之謙';
    })

    // es6寫法
    var person = arr.find(item => {
        return item.name === '薛之謙';
    })
    console.log(person);  // { name: "薛之謙", age: 28 }

  1. findIndex 返回符合條件的成員在數(shù)組中的位置(下標)
    var arr = [
        { name: '鄧紫棋', age: 20 },
        { name: '張碧晨', age: 30 },
        { name: '張靚穎', age: 25 },
        { name: '薛之謙', age: 28 },
    ]
    // js5
   var index = arr.findIndex(function(item) {
        return item.name === '張靚穎';
    })

    // es6
    var index = arr.findIndex(item => {
        return item.name === '張靚穎';
    })
    console.log(index); // 2

  1. slice 選取數(shù)組的的一部分,并返回一個新數(shù)組坎弯。
var arr = [1,2,3,4,5];
var newArr1 = arr.slice(2);  // 從位置2(包含)開始截取到最后
console.log(newArr1); // [3,4,5]
var newArr2 = arr.slice(2,4); //  從位置2(包含)開始截取到位置4(不包含)
console.log(newArr2); // [3,4]

  1. splice 刪除或添加元素
// 例1
var arr = [0,1,2,3,4,5];
arr.splice(2,1);  // 從下標為2的元素開始,刪除一個元素
console.log(arr);  // [0,1,3,4,5];
// 例2
var arr = [0,1,2,3,4,5];
arr.splice(2,2);  // 從下標為2的元素開始,刪除2個元素
console.log(arr);  // [0,1,4,5];
// 例3
var arr = [0,1,2,3,4,5];
arr.splice(2,0,'我是新成員');  // 在下標為2地方添加一個新成員
console.log(arr);  // [0, 1, "我是新成員", 2, 3, 4, 5]
// 例4
var arr = [0,1,2,3,4,5];
arr.splice(2,1,'我是新成員');  // 用新成員替換下標為2的成員
console.log(arr);  // [0, 1, "我是新成員", 3, 4, 5]

  1. join 把數(shù)組變成字符串
var arr = ['a','b','c'];
var str = arr.join('-');
console.log(str);  // "a-b-c"
var str2 = arr.join(',');
console.log(str2); // "a,b,c"

  1. forEach 迭代數(shù)組(遍歷數(shù)組)
var sum = 0;
var arr = [
    {name: '小王',age: 10},
    {name: '小李',age: 20},
    {name: '小林',age: 15},
    {name: '小明',age: 25}
]
// 計算這幾個同學(xué)的總年齡
var sum = 0;
arr.forEach(item=> {
    sum += item.age;
})
console.log(sum);

  1. map 通過指定函數(shù)處理數(shù)組的每個元素纺涤,并返回處理后的數(shù)組。
<script type="text/javascript">
    var arr = [
    {
        name: '張三',
        age:28
    },
    {
        name: '李四',
        age:28
    },
    {
        name: '陳武',
        age:28
    }
    ];
    // js5
        var newArr = arr.map(function(item){
        return {
            username: item.name,
            age: item.age+10
        };
    })
    console.log(newArr);

        // es6
    var newArr = arr.map(item=>{
        return {
            username: item.name,
            age: item.age+10
        };
    })
    console.log(newArr);
</script>

  1. filter 過濾
var arr = [
    {name: '小王',age: 10},
    {name: '小李',age: 20},
    {name: '小林',age: 15},
    {name: '小明',age: 25}
];
// 找出年齡大于或等于20歲的同學(xué)
// js5
var newArr = arr.filter(function(item){
    return item.age >= 20;
});
console.log(newArr);  //  [{小明}, {小李}]
// es6
var newArr = arr.filter(item=> {
    return item.age >= 20;
});
console.log(newArr);  //  [{小明}, {小李}]

  1. indexOf 返回數(shù)組中某個成員的位置
var arr = ['a','b','c','d'];
var index = arr.indexOf('c'); 
console.log(index); // 2
var index2= arr.indexOf('f');
console.log(index2); // 找不到返回-1

  1. includes 判斷一個數(shù)組是否包含一個指定的值
var arr = ['a','b','c','d'];
var b1 = arr.includes ('c'); 
console.log(b1); // true
var b2 = arr.includes ('f');
console.log(b2); // false

  1. isArray 判斷一個對象是不是數(shù)組
// typeof 一個數(shù)組的結(jié)果是object,要判斷一個變量是不是數(shù)組可以用isArray
var obj = {
  a: 2
}
Array.isArray(obj); // false
var arr = [1,2,3];
Array.isArray(arr); // true

  1. sort 數(shù)組排序
// 例1
var arr = [1,6,3,4];
arr.sort();
console.log(arr);  // [1, 3, 4, 6]

// 例2 通過排序函數(shù)
var arr = [10,5,40,25,1000,1]
 // 升序排列
// js5
arr.sort(function(a,b){
   return a-b;
})
// es6
arr.sort((a,b)=> {
   return a-b;
})
console.log(arr); //  [1, 5, 10, 25, 40, 1000]
// 降序排列
// js5
arr.sort(function(a,b) {
    // 升序排列
    return b-a;
})
console.log(arr); // [1000, 40, 25, 10, 5, 1]
// es6
arr.sort((a,b)=> {
    // 升序排列
    return b-a;
})
console.log(arr); // [1000, 40, 25, 10, 5, 1]

數(shù)組排序比較函數(shù)原理解析

棧操作

棧操作的原則是先進后出,我們可以使用數(shù)組的push和pop方法來實現(xiàn)棧操作

var arr = [];
arr.push('a');    
console.log(arr); 
arr.push('b');  
console.log(arr); 
arr.push('c');  
console.log(arr);  ['a','b','c']

var m1 = arr.pop();  // 刪除最后一個
console.log(m1);   // c
var m2 = arr.pop();  
console.log(m2);   // b
var m1 = arr.pop();  
console.log(m3);   // a

在上面的例子里
push方法我們可以稱它為入棧的方法,
pop方法我們可以稱它出棧的方法,
這兩者我們就統(tǒng)稱棧方法.

隊列操作

隊列操作的原則是先進先出,跟排隊買東西一個道理,
我們可以使用push(入隊)和shift(出隊)方法實現(xiàn)隊列操作

var arr = [];
arr.push('a');    
console.log(arr); 
arr.push('b');  
console.log(arr); 
arr.push('c');  
console.log(arr);  ['a','b','c']

var m1 = arr.shift();  
console.log(m1);   // a
var m2 = arr.shift();  
console.log(m2);   // b
var m1 = arr.shift();  
console.log(m3);   // 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抠忘,一起剝皮案震驚了整個濱河市撩炊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崎脉,老刑警劉巖拧咳,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囚灼,居然都是意外死亡骆膝,警方通過查閱死者的電腦和手機祭衩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阅签,“玉大人掐暮,你說我怎么就攤上這事≌樱” “怎么了劫乱?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锥涕。 經(jīng)常有香客問我衷戈,道長,這世上最難降的妖魔是什么层坠? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任殖妇,我火速辦了婚禮,結(jié)果婚禮上破花,老公的妹妹穿的比我還像新娘谦趣。我一直安慰自己,他們只是感情好座每,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布前鹅。 她就那樣靜靜地躺著,像睡著了一般峭梳。 火紅的嫁衣襯著肌膚如雪舰绘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天葱椭,我揣著相機與錄音捂寿,去河邊找鬼。 笑死孵运,一個胖子當(dāng)著我的面吹牛秦陋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播治笨,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼驳概,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旷赖?” 一聲冷哼從身側(cè)響起顺又,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杠愧,沒想到半個月后待榔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年锐锣,在試婚紗的時候發(fā)現(xiàn)自己被綠了腌闯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡雕憔,死狀恐怖姿骏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斤彼,我是刑警寧澤分瘦,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站琉苇,受9級特大地震影響嘲玫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜并扇,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一去团、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧穷蛹,春花似錦土陪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛙吏,卻和暖如春源哩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背出刷。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工璧疗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人馁龟。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像漆魔,于是被迫代替她去往敵國和親坷檩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

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

  • 一.push 是用來做什么的? 以此數(shù)組為例: sum=[12,34,56,78,89,50],寫代碼示范; 作用...
    好難想的名字閱讀 631評論 0 1
  • 數(shù)組總共有22種方法改抡,本文將其分為對象繼承方法矢炼、數(shù)組轉(zhuǎn)換方法、棧和隊列方法阿纤、數(shù)組排序方法句灌、數(shù)組拼接方法、創(chuàng)建子數(shù)組...
    Sachie閱讀 906評論 0 7
  • 1.字符串轉(zhuǎn)數(shù)組:split 返回數(shù)組 2. sort() 方法用于對數(shù)組的元素進行排序。返回的是排序后的數(shù)組 ...
    who_rong閱讀 925評論 0 0
  • 作為一門研究大腦活動與行為聯(lián)系的新興科學(xué)胰锌,認知行為科學(xué)的橫空出世骗绕,顛覆了人們長久以來關(guān)于大腦的許多假設(shè)。在認知行為...
    身體棒棒閱讀 135評論 0 1
  • 成長是對于我們一個新的開始和總結(jié)的一個不是詞語的詞語资昧。對于成長我們有不同的見解酬土,有人說成長是在現(xiàn)在的基礎(chǔ)上...
    卜怡博閱讀 302評論 1 2