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 = duce((acc , x) => at(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']
js数组方法总结数组分割合并
// 合并
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 7, 8];
const arr = at(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() duce((累加值 , x) => {函数体}, 初始值);
// 判断
some() ⽅法检查数组中 ⾄少有⼀个元素 可以通过被提供的函数⽅法。返回Boolean值。every() ⽅法检查数组中 每个元素 可以通过被提供的函数⽅法。返回Boolean值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论