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码值升序排序的

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

如要实现完整的数组元素值按升序排列,则应传递一个处理函数

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用法

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

 

slice用法

slice函数操作后不影响原素组

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方法中的参数有一个负数,则用数组长度加上该值确定相应的位置值

如数组长度为5时, slice.(-2, -1) 等价于 slice(3, 4);

巧妙使用改特性获取数组中特定后几位元素

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];

 

 

 

posted @ 2016-08-26 12:28  saxibuni  阅读(239)  评论(0编辑  收藏  举报