js数组(Array, arr)常用的方法

一、arr的常用方法如下

        1. arr.push() ==> 向数组末尾添加

        2. arr.pop() ==> 删除数组末尾的一项

        3. arr.unshift() ==> 向数组首位添加

        4. arr.shift() ==> 删除数组首位的一项

        5. arr.forEach() ==> 循环数组

        6. arr.map() ==> 循环数组

        7. arr.reverse() ==> 颠倒数组中元素的顺序

        8. arr.concat() ==> 拼接两个数组

        9. arr.splice() ==> 删除、插入和替换数组

        10. arr.slice() ==> 截取数组

        11. arr.sort() ==> 排序数组

        12. arr.join(',') ==> 将数组改为,(逗号分割)的字符串

        13. arr.toString() ==> 将数组改为字符串

        14. arr.find() ==> 查找数组中满足条件的一项

        15. arr.findIndex() ==> 查找数组中满足条件的第一项的index

        16. arr.includes() ==> 查找数组是否存在某一项

        17. arr.reduce() ==> 可用作累加器

二、详细介绍

        1. arr.push()

                - 功能:向末尾添加

                - 是否接受参数:支持传入多位参数,传入一个就添加一个,传入多位就添加多位

                - 是否操作源数组:是

                - 返回:返回添加的数据

                - eg:

let arr = [1,2,3]

arr.push(4)
console.log(arr) // [1,2,3,4]

arr.push(5,6)
console.log(arr) // [1, 2, 3, 4, 5, 6]

arr.push(7,8,9)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8, 9]

2. arr.pop()

        - 功能:删除数组末尾的一项

        - 是否接受参数:不接受参数

        - 是否操作源数组:是

        - 返回:返回删除掉的最后一项数据

        - eg:

let arr = [1, 2, 3]

arr.pop()

console.log(arr) //[1, 2]

3. arr.unshift()

        - 功能:向首位添加

        - 是否接受参数:支持传入多位参数,传入一个就添加一个,传入多位就添加多位

        - 是否操作源数组:是

        - 返回:返回添加的数据

        - eg:

let arr = [1, 2, 3]

arr.unshift(5, 6)

console.log(arr) // [5, 6, 1, 2, 3]

4. arr.shift()

        - 功能:向删除数组首位的一项

        - 是否接受参数:不接受参数

        - 是否操作源数组:是

        - 返回:返回删除的第一项的数据

        - eg:

let arr = [1, 2, 3]

arr.shift()

console.log(arr) //  [2, 3]

5. arr.forEach()

        - 功能:循环数组(针对数组的每一项进行操作)

        - 是否接受参数:接受一个函数(item, index, arr)=> {console.log('item, i, arr', item, i, arr);}

                item:循环的当前项

                i:循环的当前项的索引

                arr:数组本身

        - 是否操作源数组:是

        - 返回:undefined

        - eg:

let arr = [1, 2, 3];

let result = arr.forEach((item, i, arr) => {
  console.log('item, i, arr', item, i, arr);
  // item, i, arr 1 0 [1, 2, 3]
  // item, i, arr 2 1 [1, 2, 3]
  // item, i, arr 3 2 [1, 2, 3]
  item = item + 1;
});

console.log(arr); // [2, 3, 4]
console.log(result); // undefined

6. arr.map()

        - 功能:循环数组(针对数组的每一项进行操作)

        - 是否接受参数:接受一个函数(item, index, arr)=> {console.log('item, i, arr', item, i, arr);}

                item:循环的当前项

                i:循环的当前项的索引

                arr:数组本身

        - 是否操作源数组:否

        - 返回:***返回处理过后的新数组 (必须用return 返回)

        - eg:

let arr = [1, 2, 3];

let result = arr.map((item, i, arr) => {
  console.log('item, i, arr', item, i, arr);
  // item, i, arr 1 0 [1, 2, 3]
  // item, i, arr 2 1 [1, 2, 3]
  // item, i, arr 3 2 [1, 2, 3]
  return item + 1;
});

console.log(arr); // [1, 2, 3]
console.log(result); // [2, 3, 4]

7. arr.reverse()

        - 功能:颠倒数组中元素的顺序

        - 是否接受参数:否

        - 是否操作源数组:是

        - 返回:***返回处理过后的新数组

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.reverse();

console.log('arr', arr);  // [5, 4, 3, 2, 1]
console.log('result', result); // [5, 4, 3, 2, 1]

8. arr.concat()

        - 功能:拼接两个数组

        - 是否接受参数:接受数组,可多个

        - 是否操作源数组:否

        - 返回:***返回处理过后的新数组

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.concat([6, 7], [8, 9]);

console.log('arr', arr);  // [1, 2, 3, 4, 5]
console.log('result', result);  // [1, 2, 3, 4, 5, 6, 7, 8, 9]

9. arr.splice()

        - 功能:删除、插入和替换数组都可以(两个参数就是截取, 三个参数以上就是替换,三个参数以上时,第二参数截取长度为0, 就是添加)

        - 是否接受参数:接受至少两个参数arr.splice(index, len, ...others)

                index:索引,从那个索引开始替换

                len:截取的长度

                ...others:截取之后要添加进去的内容(可以是无数个参数,添加参数就添加几个)

        - 是否操作源数组:是

        - 返回:截取的部分

        - eg:

// 截取
let arr = [1, 2, 3, 4, 5];

let result = arr.splice(1, 2);
console.log('arr', arr); // [1, 4, 5]

console.log('result', result); // [2, 3]


// 替换
let arr = [1, 2, 3, 4, 5];

let result = arr.splice(1, 2, 9, 9, 9, 9, 9);

console.log('arr', arr); // [1, 9, 9, 9, 9, 9, 4, 5]
console.log('result', result); // [2, 3]


// 添加
let arr = [1, 2, 3, 4, 5];

let result = arr.splice(1, 0, 9, 9, 9, 9, 9);

console.log('arr', arr); // [1, 9, 9, 9, 9, 9, 2, 3, 4, 5]
console.log('result', result); // []

10. arr.slice()

        - 功能:截取数组

                当只有一个参数时,从startIndex开始,截取到最后;

                参数可以是负数

        - 是否接受参数:接受至少一个参数 arr.slice(startIndex, endIndex)

                startIndex:开始截取的index

                endIndex:截取到那个index(截取的不包含endIndex的项)

        - 是否操作源数组:否

        - 返回:截取后部分组成的数组

        - eg:

// eg1
let arr = [1, 2, 3, 4, 5];

let result = arr.slice(1);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // [2, 3, 4, 5]


// eg2
let arr = [1, 2, 3, 4, 5];

let result = arr.slice(1, 3);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // [2, 3]


// eg3
let arr = [1, 2, 3, 4, 5];

let result = arr.slice(-3, -1);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // [3, 4]

11. arr.sort() 

        - 功能:排序数组(数组, 字符串, 汉字都可以排序)(按照ASCII码排序)

        - 是否接受参数:可以接受参数,接受一个上函数(a, b) => a - b

                升序: (a, b) => a - b / 不穿参

                降序: (a, b) => b - a

        - 是否操作源数组:是

        - 返回:返回排序后的数组

        - eg:

// eg1 升序
let arr = [4, 5, 7, 2, 3, 7, 2, 1];

let result = arr.sort();

console.log('arr', arr); // [1, 2, 2, 3, 4, 5, 7, 7]
console.log('result', result); // [1, 2, 2, 3, 4, 5, 7, 7]


// eg2 升序
let arr = [4, 5, 7, 2, 3, 7, 2, 1];

let result = arr.sort((a, b) => a - b);

console.log('arr', arr); // [1, 2, 2, 3, 4, 5, 7, 7]
console.log('result', result); // [1, 2, 2, 3, 4, 5, 7, 7]


// eg3 降序
let arr = [4, 5, 7, 2, 3, 7, 2, 1];

let result = arr.sort((a, b) => {
    return b - a
});

console.log('arr', arr); // [7, 7, 5, 4, 3, 2, 2, 1]
console.log('result', result); // [7, 7, 5, 4, 3, 2, 2, 1]

12. arr.join(param)

        - 功能:将数组改为以任何字符(param)分割的字符串

        - 是否接受参数:接受一个字符

        - 是否操作源数组:否

        - 返回:返回分割后的*字符串*

        - eg:

// eg1 逗号分隔
let arr = [1, 2, 3, 4, 5];

let result = arr.join(',');

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // 1,2,3,4,5


// eg2 中线
let arr = [1, 2, 3, 4, 5];

let result = arr.join('-');

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // 1-2-3-4-5


// eg3 数字1
let arr = [1, 2, 3, 4, 5];

let result = arr.join(1);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // 112131415

13. arr.toString()

        - 功能:将数组改为字符串

        - 是否接受参数:否

        - 是否操作源数组:否

        - 返回:返回分割后的*字符串*

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.toString();

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // 1,2,3,4,5

14. arr.find()

        - 功能: 查找数组中满足条件的一项

        - 是否接受参数:接受一个函数(item) => item == 8

        - 是否操作源数组:否

        - 返回:找到返回满足的第一项, 找不到返回undefined

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.find(item => item == 8});

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // undefined

15. arr.findIndex()

        - 功能: 查找数组中满足条件的第一项的index

        - 是否接受参数:接受一个函数(item) => item == 8

        - 是否操作源数组:否

        - 返回:找到返回满足的第一项的index, 找不到返回-1

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.findIndex(item => item == 8});

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // -1

16. arr.includes()

        - 功能: 查找数组是否存在某一项

        - 是否接受参数:接受一个函数

        - 是否操作源数组:否

        - 返回:找到返回true, 找不到返回false

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.includes(5);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // true

17. arr.reduce()

        - 功能:可用作累加器, 去重等

        - 是否接受参数:接受两个参数 arr.reduce((pre, curr) => {}, total)

                第一个参数:函数(pre, curr) => {}

                        pre:上次循环返回的值,

                        curr:当前循环的项

                第二个参数:初始化的字

        - 是否操作源数组:否

        - 返回:返回循环结束处理的值

        - eg:

let arr = [1, 2, 3, 4, 5];

let result = arr.reduce((per, curr) => {
  return per + curr;
}, 0);

console.log('arr', arr); // [1, 2, 3, 4, 5]
console.log('result', result); // 15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snows_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值