数组的内置方法

194 阅读5分钟

数组的常用方法

  1. concat() 合并数组
 let arr = [11, 22, 33, 44, 55];
 let arr2 = [66, 99, 33, 77];
 console.log(arr.concat(arr2)); //[11, 22, 33, 44, 55, 66, 99, 33, 77]
  1. push() 在数组的末尾添加元素,改变原数组
let arr = [11, 22, 33, 44, 55];
arr.push("dd");
console.log(arr);//[11, 22, 33, 44, 55,dd]
  1. unshift() 在数组的开头添加元素,改变原数组
let arr = [11, 22, 33, 44, 55];
arr.unshift("ff");
console.log(arr);//[ff, 11, 22, 33, 44, 55]
  1. pop() 删除数组的最后一个元素,改变原数组
let arr = [11, 22, 33, 44, 55];
arr.pop();
console.log(arr);//[11, 22, 33, 44]
  1. shift() 删除数组最前面的一个元素,改变原数组
let arr = [11, 22, 33, 44, 55];
arr.shift();
console.log(arr);//[22, 33, 44 ,55]
  1. join() 将数组转换成字符串,默认以 “ , ”隔开,括号里面也可传入参数,如:“-”,则是以“-”隔开
let arr = [11, 22, 33, 44, 55];
console.log(arr.join());//11,22,33,44,55
//括号里面也可传入参数,如:“-”,则是以“-”隔开
console.log(arr.join("-"));//11-22-33-44-55
  1. toString() 将数组转换为字符串,默认以“,”,且无法改变其连接方式。
let arr = [11, 22, 33, 44, 55];
console.log(arr.toString()); //11, 22, 33, 44, 55
  1. sort() 数组的排序, 但是默认是以元素的首字符的ASCII码的值大小进行排序。
let arr = [2, 1, 4, 3, 5];
console.log(arr.sort()); //1, 2, 3, 4, 5
//但是,注意的是:看下面的例子就体现了以元素的首字符的ASCII码的值大小进行排序
let arr1 = [22, 1, 4, 3, 5];
console.log(arr.sort()); //1, 22, 3, 4, 5
  1. reverse() 数组的反转。
let arr = [11, 22, 33, 44, 55];
console.log(arr.toString()); //55, 44, 33 ,22 ,11
  1. splice(x[,y]);删除指定元素后的元素,x代表开始删除的元素下标,y可选填,代表删除的元素个数如果不写,就会从开始的下标删除到最后,返回一个被删除的元素组成的新数组,改变原数组。
let arr = [11, 22, 33, 44, 55];
let newArr = arr.splice(2,2); 
console.log(arr); //[11, 22, 55] 原数组被改变。这是删除后的原数组
console.log(newArr); //[33, 44] 这是被删除的元素组成的新数组
//如果第二个参数后面还有参数,那么这些参数就会被当做新元素添加到原数组内(添加在被删除的元素的位置上),如下面的例子:
let newstr = arr.splice(1,2,555,888);
console.log(arr);//[11, 555, 888](上面的代码已经将原数组arr改变成了[11, 22, 55],所以这里的结果是[11, 555, 888])
  1. slice(x,y) 截取数组元素,x代表开始截取的元素下标,y代表结束截取的元素下标,如果只有一个参数的话,就会从开始的下标截取到最后。
let newArr=arr.slice(2,4);
console.log(newArr);//[33,44]
  1. indexOf() 查找数组中的某一个元素,如果查找到该元素就返回该元素第一次出现的下标,如果查找不到该元素就返回-1,默认从前往后查找。
let arr = [11, 22, 33, 44, 55];
let result1 = arr.indexOf(33); 
let result2 = arr.indexOf(66); 
console.log(result1); //2
console.log(result2); //-1
  1. lastIndexOf() 查找数组中的某一个元素,如果查找到该元素就返回该元素第一次出现的下标,如果查找不到该元素就返回-1,默认从后往前查找。
let arr = [11, 22, 33, 44, 55];
let result1 = arr.indexOf(33); 
let result2 = arr.indexOf(66); 
console.log(result1); //2
console.log(result2); //-1

数组的迭代方法

  1. forEach() 数组的循环遍历
 let arr1 = [1, 5, 3, 6];
 arr1.forEach((item,index)=>{
    console.log(index + ":" + item); 
    /*输出结果:
    0:1
    1:5
    2:3
    3:6
    */
 });
  1. filter() 数组的筛选,返回符合条件的新数组
let arr1 = [1, 5, 3, 6];
let res1 = arr1.filter((item,index)=>{
    return item > 3;
});
console.log(res1); ///[5, 6],返回符合条件的新数组
  1. some() 检查数组中是否存在某一个元素,如果有一个满足条件就会返回true,否则就返回false
let arr1 = [1, 5, 3, 6];
let res2 = arr1.some((item)=>{
    return item === 5;
})
console.log(res2); //true , 数组arr1 中存在元素5,故返回true

let res3 = arr1.some((item)=>{
    return item === "5";
})
console.log(res3); //false , 数组中不存在元素 字符串5,故返回false
  1. every() 检查数组中是否存在某一元素,必须所有的条件都满足才会返回true,否则返回false
let arr1 = [1, 5, 3, 6];
let res4 = arr1.every((item, index) => {
    return item > 0;
});
console.log(res4); //arr1中的所有元素都大于0 ,所以返回true

let res5 = arr1.every((item, index) => {
    return item > 3;
});
console.log(res5); //arr1中并不是所有元素都大于3 ,所以返回false
  1. map() 返回一个新数组,此方法可以以一个函数为参数,循环数组的每一个元素,函数将数组中的元素接收为单个参数。
let arr1 = [1, 5, 3, 6];
let res6 = arr1.map((item) => {
    return item * 2;
});
console.log(res6);//[2, 10, 6, 12]
console.log(arr1);//打印一下原数组可见,不改变原数组
  1. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减(是个数递减,不是值),最终计算为一个值。
let arr1 = [1, 5, 3, 6];
let res7 = arr1.reduce((a, b) => {
    return a+b;
});
console.log(res7);//15,数组arr1中元素的累加值
  1. findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。 findIndex() 方法为数组中的每个元素都调用一次函数执行:
    • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
    • 如果没有符合条件的元素返回 -1

注意:  findIndex() 对于空数组,函数是不会执行的。

注意:  findIndex() 并没有改变数组的原始值。

array.findIndex(function(currentValue, index, arr), thisValue)
参数描述
currentValue必需。当前元素
index可选。当前元素的索引
arr可选。当前元素所属的数组对象
thisValue可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值