数组方法

209 阅读3分钟

ES5中新增的方法

  • Array.isArray() 判断是否是一个数组

Array.isArray(arr)

  • forEach() 对数组进行循环。
arr.foreach(function(item,index,arr){

<!--item:当前数组的元素,相当于arr[index];
    index:数组元素的索引;
    arr:当前的数组;-->
});

例如:

        arr.forEach(function(item,index,arr){
            console.log(`下标为${index}的元素的值为${item}`);
            console.log(arr);
        })

输出:

  • map() 逐一处理原数组元素,返回一个新数组
arr.map(function(item,index,arr){
    return
});

例如:

let arr = [50,34,32,54,1]
let newArr = arr.map(function(item,index,arr){
     return item +=10;
});
console.log(newArr);

输出:

  • **filter()**逐一过滤原数组元素,留下符合条件的元素得到一个新数组。
arr.filter(function(item,index,arr){
            return 布尔值;
})
let arr = [80,34,60,100,65]
let newArr = arr.filter(function(item,indx,arr){
            return item < 60;
})
console.log(newArr);

输出:

  • reduce()

不断地将前一项和后一项的值进行运算,把前一项运算的结果当作运算的前一项,返回最后结果。

格式

格式1:不带初始值:其中,prev表示前一项,next表示后一项

arr.reduce(function(prev,next){
            return
})

格式2:带初始值:

arr.reduce(function(prev,bext){...},初值)

例如:

let arr = [1,2,3,4]
let sum = 0;
sum = arr.reduce(function(prev,next){
            return prev + next;
})
console.log(sum);

输出:

数组元素是对象的例子:


带初值的例子:

  • some()
    只要数组中的某一个元素符合指定条件,就会返回真,否则返回假。
arr.some(function(item,index,arr){
            return     ;
})
let arr = [
            {name:"jake",score:83},
            {name:"batt",score:67},
            {name:"kata",score:75},
            {name:"filx",score:88},
            {name:"koko",score:98},
        ];
let rs = arr.some(function(item){
            console.log(item);
            return item.score>90;
})
console.log(rs);

输出:

,由于最后一个元素才满足,所以循环输出了所有元素。

  • every()
    如果数组中的素所有元素都符合指定的条件,才返回true,否则返回false
arr.every(function(item,index,arr){
            return    ;
})
let arr = [
            {name:"jake",score:83},
            {name:"batt",score:67},
            {name:"kata",score:75},
            {name:"filx",score:88},
            {name:"koko",score:98},
        ];
let rs = arr.every(function(item){
            console.log(item);
            <!--检查是否所有人都超过了80分,全部满足才是true-->
            return item.score>80;
})
console.log(rs);

输出:

ES6中新增的方法

  • Array.from()

这个方法是Array构造器的静态方法,将把类数组对象转成真正的数组。

格式1:Array.from(类数组对象);

格式2:Array.from(类数组对象,function(item,index){
        return    ;
})
  • Array.of()

    将一组值转换为数组,与Array.from功能相似,理解用来创建数组。

let arr1 = Array.of(3);
let arr2 = Array.of("3");
    console.log(arr1);
    console.log(arr2);

  • find和findIndex()

find:用于找出第一个符合条件的数组元素。找不到则是undefined 。注意,它是不会返回多个,只找一个,找到了就返回。如果你要把所有的满足条件的数组元素都找出来,你应该用filter()。
findIndex:返回第一个符合条件的数组元素的索引。找不到则是-1;

arr.find(function(item,index){
            return 条件;
})

例如:

let arr = [
            { name: "jake", score: 83 },
            { name: "batt", score: 67 },
            { name: "kata", score: 75 },
            { name: "filx", score: 88 },
            { name: "koko", score: 98 },
        ];
        let rs1 = arr.find(function (item) {
            console.log(item);
            return item.score > 80;
        });
        console.log(rs1);

输出:

  • includes()

判断元素是否在数组中存在。返回值是truefalse

  let arr = [1, 2, 3];
        console.log(arr.includes(1));
        console.log(arr.includes(3));
        console.log(arr.includes(4));

输出:

  • fill()

给数组填充指定值。fill方法用于空数组的初始化非常方便。已有数据会被覆盖,fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。

格式:

格式:arr.fill(值)
格式:arr.fill(值,起点,终点) 包括起点,不包括终点