js Array对象的常用方法总结

2 篇文章 0 订阅

一、检测数组
Array.isArray():确定某个值是不是数组

var arr = [1,2,3];
Array.isArray(arr);// true

二、转换方法
1.toString():返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串
2.valueOf():返回数组本身

var colors = ["red", "blue", "green"];
alert(colors.toString());//red,blue,green
alert(colors.valueOf());//red,blue,green

3.join(): join()方法只接受一个参数,作为字符串的分隔符

var colors = ["red", "blue", "green"];
alert(colors.join(","));//red,blue,green
alert(colors.join("||"));//red||blue||green

三、栈方法
1.push(): push()方法可以接受任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。
2.pop(): pop()方法可以从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。

var num = [];
var count = num.push("1", "2");
alert(count);//2

var numbers = num.pop();
alert(numbers);//"2"
alert(numbers.length);//1

四、队列方法
1.push():同栈方法中的push()。
2.shift():该方法取得数组的第一项,返回取出的值。
3.unshift():与shift()的用途相反,能在数组前端添加任意个项并返回新数组的长度。

var num = [];
var count = num.push("1", "2", "3");
alert(count);//3

var numbers = num.shift();
alert(numbers);//"1"
alert(num.length);//2

var item = num.unshift("4");
alert(item); //3

五、重排序方法
1.reverse():反转数组项的顺序。

var values = [1,2,3,4,5];
values.reverse();
alert(values);//5,4,3,2,1

2.sort():在默认情况下,sort()方法按升序排列数组项。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串。但是sort()方法并不是一个好的方法,比如:

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

因为数值5虽然小于10,但是进行字符串比较时,“10”位于“5”的前面,所以数组的顺序就被修改了。
因此sort()方法可以接受一个比较函数作为参数,来指定哪个值位于哪个值前面。
比较函数接受两个参数,如果第一个参数应该位于第二个之前则返回一个负数,两个参数相等返回0,第一个参数应该位于第二个之后则返回一个正数。比如:

function compare(num1, num2){
    return num1 - num2;
}

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

六、操作方法
1.concat():用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

var num1 = [1, 2, 3];
var num2 = [4, 5, 6];

var num3 = num1.concat(num2);//1,2,3,4,5,6

2.slice():slice()方法可以接受一个或两个参数,即要返回项的起始和结束位置。它能够基于当前数组中的一个或多个项创建一个新数组。
当只有一个参数时,slice()方法返回从该参数指定的位置开始到当前数组末尾的所有项。
当有两个参数是,返回从第一个参数指定的位置开始到第二个参数指定位置的前一项。比如slice(1,5)是指取数组的第二项到第五项。

var num = [1,2,3,4,5,6];
var num1 = num.slice(1);
var num2 = num.slice(1,5);

alert(num1);//2,3,4,5,6
alert(num2);//2,3,4,5

3.splice()方法:
splice()有很多用法,主要的用途是向数组的中部插入项,但使用这种方法的方式有以下三种:
(1)删除:可以删除任意数量的项,只需指定两个参数:要删除的第一项的位置和要删除的项数。例如,splice(0,2)会删除数组中的前两项。
(2)插入:可以向指定位置插入任意数量的项,只需提供3个参数:起始位置,0(要删除的项数),要插入的值。如果要插入多个项,可以传入任意多个值。比如,splice(1,0,”1”,”2”)会在第一个位置插入“1”和“2”。
(3)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置,要删除的项数,要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice(1,2,”1”,”2”,”3”)会删除第一、二位置的值并插入”1”,”2”,”3”。

七、位置方法
indexOf()和lastIndexOf():都接受两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()方法从数组的开头开始向后查找,lastIndexOf()则从数组的末尾开始向前查找。在没有找到的情况下返回-1.

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
alert(num.indexOf(4));//3
alert(num.lastIndexOf(4));//5

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

八、迭代方法
1.every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var everyResult = num.every(function(item){
    return (item>2);
    });
alert(everyResult);//false

2.fliter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var filterResult = num.fliter(function(item){
    return (item>2);
    });
alert(filterResult);//[3, 4, 5, 4, 3]

3.forEach():对数组中的每一项运行给定函数,这个方法没有返回值,本质上与for循环迭代数组一样。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
num.forEach(function(){
    //执行一些操作
    });

4.map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var mapResult = num.map(function(item){
    return item*2;
    });
alert(mapResult);//[2, 4, 6, 8, 10, 8, 6, 4, 2]

5.some():对数组中的每一项运行给定函数,如果该函数对任意一项返回true,则返回true。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var someResult = num.some(function(item){
    return (item>2);
    });
alert(someResult);//true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值