js数组常用方法总结

目录

数组扁平

数组去重

数组排序

数组转字符串

数组分割合并

数组元素查找

数组增删

数组迭代


数组扁平

// flat(Infinity): 不论数组有多少层都拍成一维数组且不会改变原数组  es6
const arr = [1, [2, 3, [4, 5], 6, [7, [8, [9, [10]]]]]]; // 多维数组
const arr2 = [[1, 2, 3], [4, 5, 6]]; // 二维数组
arr.flat(Infinity); // 结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr2.flat(Infinity); // 结果 [1, 2, 3, 4, 5, 6]
// 仅处理二维数组
const arr3 = arr2.reduce((acc , x) => acc.concat(x), []);// 结果 [1, 2, 3, 4, 5, 6]

数组去重

// Set去重,最优雅但是无法对空对象{}去重  es6
const arr = [1, 1, 2, 6, 9, 6, 2, 3, 4, 3];
const arr1 = Array.from(new Set(arr));// 结果[1, 2, 6, 9, 3, 4]

数组排序

// 默认排序顺序是根据字符串Unicode码点,英文字母也可排序
const arr = [1, 2, 9, 5, 3, 6, 7];
const arr1 = ["C", "Z", "B", "A", "H", "Y", "Q"];
arr.sort();// 结果[1, 2, 3, 5, 6, 7, 9]
arr1.sort();// 结果['A', 'B', 'C', 'H', 'Q', 'Y', 'Z']

// 排序函数
const fn = (a, b) => { // 排序函数 b-a倒序  a-b正序
  return b - a; //
};
arr.sort(fn);// 结果[9, 7, 6, 5, 3, 2, 1]

// 先排序再翻转数组结果一样
arr.sort().reverse();// 结果[9, 7, 6, 5, 3, 2, 1]

数组转字符串

const arr = ["C", "Z", "B", "A", "H", "Y", "Q"];
const str = arr.join(",");// 结果"C,Z,B,A,H,Y,Q"
const arr1 = str.split(",");// 结果['C', 'Z', 'B', 'A', 'H', 'Y', 'Q']

数组分割合并

// 合并
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 7, 8];
const arr = arr1.concat(arr2);
// const arr = [...arr1, ...arr2];    es6

// 分割 slice第一个参数=开始下标  第二个参数=结束下标(不包含)====>理解为从第一个参数下标开始截(第二个参数-第一个参数)个
const arr3 = arr.slice(0, 2);// 结果[1, 2]
const arr4 = arr.slice(2, 6);// 结果 [3, 4, 5, 6]

数组元素查找

const arr = [1, 2, 3, 4];
const item1 = 3;
const item2 = 6;
// 查简单一维数组
arr.includes(item1);// 结果 true
arr.indexOf(item1);// 结果 2
arr.includes(item2);// 结果 false
arr.indexOf(item2);// 结果 -1
// 查数组对象
findIndex() //返回索引
find() //返回元素

数组增删

const arr = [1, 2, 3, 4];
arr.push(5); // 结果 [1,2,3,4,5]

// arr.splice(索引,往右删除数量)    不建议循环中使用,原数组改变后索引也会改变
arr.splice(1,1) // 结果 [1,3,4,5]
// delete arr[索引]   可用于循环中,原数组长度不变索引也不变,循环后把empty过滤掉即可
delete arr[1] // 结果 [1,empty,4,5]
arr.filter(x=>x!==undefined) // 结果 [1,4,5]

数组迭代

// 改变原数组

forEach() 方法对数组的每个元素执行一次提供的函数。

// 返回新数组

map() 返回是该数组中的每个元素都调用一个提供的函数后返回的结果。

filter() 返回通过所提供函数实现的测试的所有元素。

reduce() arr.reduce((累加值 , x) => {函数体}, 初始值);

// 判断

some() 方法检查数组中 至少有一个元素 可以通过被提供的函数方法。返回Boolean值。

every() 方法检查数组中 每个元素 可以通过被提供的函数方法。返回Boolean值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值