美文网首页
数组常用方法

数组常用方法

作者: my木子 | 来源:发表于2021-04-10 13:31 被阅读0次

一、修改器方法,7种(改变原数组)

    1. unshift() 头部添加,返回新数组长度
let arr = [12,34,26];

let len = arr.unshift(99);

console.log(len);    //  返回一个新的长度  4
console.log(arr);    // 结果为 [99,12,34,26]
    1. shift() 头部删除,返回删除的第一个元素
let arr = [12,34,26];

let val = arr.shift();

console.log(val);    //  返回删除的第一个元素  12
console.log(arr);    // 结果为 [12,34]
    1. push() 尾部添加,返回新数组长度
let arr = [12,34,26];

let len = arr.push(100);

console.log(len);    //  返回一个新的长度  4
console.log(arr);    // 结果为 [12,34,26,100]
    1. pop() 尾部删除,返回删除的最后一个元素
let arr = [12,34,26];

let val = arr.pop();

console.log(val);    //  返回删除的最后一个元素  26
console.log(arr);    // 结果为 [12,34]
    1. reverse() 反转数组,返回反转后的数组
let arr1 = [12,34,26];

let arr2 = arr1.reverse();

console.log(arr2);    // 结果为 [26, 34, 12]
    1. splice() 截取数组
// 增加
let arr1 = [33,44,55,66,77,88];
let d1 = arr1.splice(2,0,'a','b');   // 第一个值为索引,第二个值0表示新增,后面是新增的参数

console.log(d1);    // []
console.log(arr1);  // [33, 44, "a", "b", 55, 66, 77, 88]


//删除
let arr2 = [33,44,55,66,77,88];
let d2 = arr2.splice(3,2)
 console.log(d2)        // 返回被删除的值 [66, 77]
 console.log(arr2);     // [33, 44, 55, 88]
//  console.log(arr2.splice(3));   // 删除索引3后面所有的值


// 修改
let arr3 = [33,44,55,66,77,88];

let d3 = arr3.splice(1,1,'x','y','z');  // 第一个值为索引,第二个值表示删除的位数,后面是新增的参数

console.log(d3);    // [44] // 删除的值
console.log(arr3); // [33, "x", "y", "z", 55, 66, 77, 88]
    1. sort() 数组排序
let arr = [1,2,11,4,5,6,7,8,9,10,3];

// arr.sort(); // 存在问题,不推荐使用,返回结果 [1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9]

arr.sort(function(a,b){        // return a-b;  // 结果[9, 12, 23, 32, 44, 54, 90]

    return a-b;  // 正序,返回结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
})
console.log(arr);

二、访问方法(不改变原数组)

    1. slice() 切割数组,返回选中元素的新数组
let arr = [1,2,3,4,5,6,7,8,9]; 

// console.log(arr.slice(0));      // 返回一个新数组,可以实现数组克隆
// console.log(arr.slice(2,8));    // 从索引2开始查找到索引为8的内容,结果为[3, 4, 5, 6, 7, 8] 
// console.log(arr.slice(-2,-1));    // [8]
    1. join() 返回一个通过连接符连接数组元素的字符串
let arr = [12,34,26];

let str = arr.join('-');    // 不传值默认逗号连接
console.log(str);    // 结果为  12-34-26
    1. concat() 连接数组,返回合并后数组的副本
let arr1 = [12,34,26];
let arr2 = [11,34,33];

let arr = arr1.concat(arr2);
console.log(arr);    // 结果为 [12, 34, 26, 11, 34, 33]
    1. toString() 将数组转换成一个字符串
let arr = [1,2,11,4,5,6,7,8,9,10,3];

let str = arr.toString();   

console.log(str);   // 1,2,11,4,5,6,7,8,9,10,3

三、迭代方法

    1. forEach()
let arr = [1,2,11,4,5,6,7,8,9,10,3];

arr.forEach((item, index, array)=>{
    console.log(item); 
});   
    1. map() 返回一个新数组
let arr = [1, 2, 3];
let arr2 = arr.map((item, index, array) => {
    return ++item;
});
        console.log(arr2);   // [2,3,4]
    1. filter() 筛选,返回一个新数组
let arr = [1, 2, 3, 7];
let arr2 = arr.filter((item, index, array) => {
    return item > 2;
});
console.log(arr2); // [3,7]
    1. every() 用于判断所有元素是否符合某一条件,只要有一个不满足即为 false,返回布尔值
let arr = [1, 2, 3, 7];
let bool= arr.every((item, index, array) => {
    return item > 2;
});
console.log(bool); // false
    1. some() 用于判断所有元素是否符合某一条件,只要有一个满足即为 true,返回布尔值
let arr = [1, 2, 3, 7];
let bool= arr.some((item, index, array) => {
    return item > 2;
});
console.log(bool); // true
    1. reduce() 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,返回最终值
let arr = [1, 2, 3];
let arr2 = arr.reduce((total, currentValue, currentIndex, arr) => {
    console.log(total, currentValue)
    return total + currentValue
});
console.log(arr2); // 6

let arr3 = arr.reduce((total, currentValue, currentIndex, arr) => {
    console.log(total, currentValue)
    return total + currentValue
},10);  // initialValue 可选,传递给函数的初始值
console.log(arr3); // 16

扩展方法

    1. includes() 判断一个数组是否包含一个指定的值,包含返回 true
let arr = [33,44,55,66,33,77,88];

let index = arr.includes(33);
console.log(index);  // true
    1. indexOf() 检测当前值在数组中第一次出现的位置索引,如果未找到,返回 -1
let arr = [33,44,55,66,77,88];

let index = arr.indexOf(33);
console.log(index);  // 1
    1. lastIndexOf() 检测当前值在数组中最后一次出现的位置索引,如果未找到,返回 -1
let arr = [33,44,55,66,33,77,88];

let index = arr.lastIndexOf(33); 
console.log(index);  // 4
    1. Array.from() 将一个类数组对象或者可遍历对象转换成一个真正的数组
// 字符串
let str = 'abcd';
let arr1 = Array.from(str)
console.log(arr1);      // ["a","b","c","d"]

/* 类数组对象
    1. 必须具有length属性,如果没有length属性,那么转换后的数组是一个空数组。
    2. 属性名必须为数值型或字符串型的数字
*/
let obj = {
     0: 1,
     '1': 'b',
     'length': 2
}
let arr2 = Array.from(obj)
console.log(arr2);  // [1,"b"]

// 接受第二个参数
let arr = [1, 2, 3];
let arr3 = Array.from(arr, x => {
     return x+=1;
});
console.log(arr3); // [2,,3,4]

相关文章

网友评论

      本文标题:数组常用方法

      本文链接:https://www.haomeiwen.com/subject/omjbkltx.html