js中數組實用方法

shift用法和unshit用法數組

var  colors = [ 'red', 'blue' ];
var item = colors.shift();
alert(item);   //'red'
alert(colors.length); // 1
var colors = ['red','blue'];
var count = colors.unshift('green','back');
alert(count); //4
alert(colors.join(',')); // 'back','green','red','blue'

 

sort用法函數

sort方法默認按照元素內內首個字符的ascii碼值升序排序的spa

var arr = [5,1,4,11,2].sort();
console.log(arr); //[1, 11, 2, 4, 5]

如要實現完整的數組元素值按升序排列,則應傳遞一個處理函數code

function compare(val1, val2) {
    if(val1 < val2){
        return -1;           
    }else if(val1 > val2){
        return 1;
    }else{
        return 0;
    }
};

var values = [5, 1,  11, 2];
values.sort(compare);
console.log(values);  // [1, 2, 5, 11]

 

concat用法blog

var a =[1, 2];
a.concat(3, [4, 5]);
console.log(a);//[1,2,3,4,5];

 

slice用法排序

slice函數操做後不影響原素組ip

var colors = ['red', 'green', 'blue'];
var colors2 = colors.slice(1);   // ['green', 'blue'];
var colors3 = colors.slice(1, 2); // ['green'];
console.log(colors); // ['red', 'green', 'blue'];

tips:若是slice方法中的參數有一個負數,則用數組長度加上該值肯定相應的位置值ci

如數組長度爲5時, slice.(-2, -1) 等價於 slice(3, 4);rem

巧妙使用改特性獲取數組中特定後幾位元素it

var a = [1,2,3,4,5,6,7];
var b = a.slice(4); //[4,5,6,7]

 

splice用法

刪除功能: 指定兩個參數, 要刪除的第一項的位置和要刪除的項數

var colors = ['red', 'green', 'blue'];
var removed = colors.splice(0,1);
alert(colors);  // 'green', 'blue'
alert(removed); // 'red'

插入功能:指定3個參數:起始位置、0(要刪除的項數),要插入的項

removed = colors.splice(1, 0, 'yellow', 'orange'); //從位置1開始插入兩項
alert(colors); // green, yellow, orange, blue
alert(removed); //返回的是一個空數組

替換功能:指定3個參數:起始位置、要刪除的項數,要插入的項

removed = colors.splice(1, 1, "red", "purple"); //插入兩項,刪除一項
alert(colors); //green,red,purple,orange,blue
alert(removed);  //yellow  返回的數組中只包含一項

 

迭代方法

every:對數組中的每一項運行給定函數,若是該函數對每一項都返回true,則返回true,

some:對數組中的每一項運行給定函數,若是該函數對任意一項返回true,則返回true,

forEach:對數組中的每一項執行某些操做

filter: 對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組

map:對數組中的每一項運算給定函數,返回每次函數調用的結果組成的數組

var number = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.every(function(item,index,array){
      return item > 2;     
})
alert(everyResult); // false;

var someResult = numbers.every(function(item,index,array){
    return item > 2;
}) 
alert(someResult); //true;

numbers.forEach(function(item,index,array){
      //執行某些操做    
})

var filterResult = numbers.filter(function(item,index,array){
     return item > 2;
})
alert(filterResult); //[3,4,5,4,3];

var mapResult = numbers.map(function(item,index,array){
      return item * 2;    
})
alert(mapResult); //[2,4,6,8,10,8,6,4,2];
相關文章
相關標籤/搜索