数组默认方法

栈方法

push() 接收任意数量的参数逐个添加到数组末尾(从末尾加)
pop() 从数组末尾移除最后一项(删最后一个)

队列方法

shift() 移除数组中的第一个项(删第一个)
unshift() 在数组前端添加任意个项(从前面加)

重排列方法

reverse() 翻转数组项的顺序
sort() 升序排列(首字母排序,不是按大小)

比较函数

升序

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

        var values = [0, 1, 5, 10, 15];
        values.sort(compare);
        alert(values);    //0,1,5,10,15

降序

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

        var values = [0, 1, 5, 10, 15];
        values.sort(compare);
        alert(values);    //15,10,5,1,0

操作方法

concat() 末尾添加数组

contan( [ "black" , "yellow" , "red" ] )

splice() 数组中部插入项

删除

splice(要删除的第一项的位置, 要删除的项数)
splice( 0, 2 ) 删除数组中前两项

插入

splice( 起始位置, 0(要删除的项数), 要插入的项)
splice( 2, 0, "red", "green" ) 从当前数组的位置2 开始插入字符串“red” 和“green”

替换

splice( 起始位置, 要删除的项数, 要插入的任意数量的项)
splice( 2, 1, "red", "green" ) 会删除当前数组位置 2 的项, 然后再从位置 2 开始插入字符串 “red” 和“green”

例子

    var colors = ["red", "green", "blue"];
    var removed = colors.splice(0,1);              //remove the first item
    alert(colors);     //green,blue
    alert(removed);    //red - one item array

    removed = colors.splice(1, 0, "yellow", "orange");  //insert two items at position 1
    alert(colors);     //green,yellow,orange,blue
    alert(removed);    //empty array

    removed = colors.splice(1, 1, "red", "purple");    //insert two values, remove one
    alert(colors);     //green,red,purple,orange,blue
    alert(removed);    //yellow - one item array

位置方法

indexOf() 从数组的开头(位置0)开始向后查找, 没找到的情况下会返回-1
lastIndexOf 从数组的末尾开始向前查找, 没找到的情况下会返回-1

例子

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


    alert(numbers.indexOf(4));        //3
    alert(numbers.lastIndexOf(4));    //5

    alert(numbers.indexOf(4, 4));     //5
    alert(numbers.lastIndexOf(4, 4)); //3       

    var person = { name: "Nicholas" };
    var people = [{ name: "Nicholas" }];
    var morePeople = [person];

    alert(people.indexOf(person));     //-1
    alert(morePeople.indexOf(person)); //0

迭代方法

every() 对数组中的每一项运行给定函数, 如果该函数对每一项都返回true, 则返回true。
filter() 对数组中的每一项运行给定函数, 返回该函数会返回 true 的项组成的数组。
forEach() 对数组中的每一项运行给定的函数。 这个方法没有返回值。
map() 对数组中的每一项运行给定的函数, 返回每次函数调用的结果组成的数组。
some() 对数组中的每一项运行给定的函数, 如果该函数对任一项返回true, 则返回true。
以上方法都不会修改数组中的包含的值, 传入这些方法会接受三个参数(数组项的值, 该项在数组中的位置, 数组对象本身)

every() some() 例子

以上代码调用的every() 和 some() , 传入的函数只要给定项大于 2 就会返回true, 对于every(),它返回的是false, 因为只有部分数组项符合条件,对于some() 就返回true, 因为至少有一项是大于 2 的。

        var numbers = [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.some(function(item, index, array){
            return (item > 2);
        });

        alert(someResult);       //true

filter() 例子

通过filter()方法创建并返回一个所有数值都大于 2 的数组

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

        var filterResult = numbers.filter(function(item, index, array){
            return (item > 2);
        });

        alert(filterResult);   //[3,4,5,4,3]

map() 例子

给数组中每一项都乘以 2

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

        var mapResult = numbers.map(function(item, index, array){
            return item * 2;
        });

        alert(mapResult);   //[2,4,6,8,10,8,6,4,2]

forEach() 例子

var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
    //执行某些操作
})

归并方法

reduce() 从数组第一项开始逐个遍历到最后
reduceRight() 从数组最后一项开始,向前遍历到第一项
四个参数(前一个值, 当前值, 项的索引, 数组对象)

reduce() 例子

求数组所有值之和

var values = [1,2,3,4,5];
        var sum = values.reduce(function(prev, cur, index, array){
            return prev + cur;
        });
        alert(sum);

reduceRight() 例子

求数组所有值之和

var values = [1,2,3,4,5];
        var sum = values.reduceRight(function(prev, cur, index, array){
            return prev + cur;
        });
        alert(sum);

转载于:https://www.cnblogs.com/dflxm/p/7866123.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值