Array常用方法

返回新数组的方法

concat() 连接多个数组

let a = ['apple','banana','mango'];
let b = ['pen','eraser'];
let c = ['panda','cat'];
let d = a.concat(b); 
// ['apple', 'banana', 'mango', 'pen', 'eraser']
// 注意顺序
let e = b.concat(a);
// ['pen', 'eraser', 'apple', 'banana', 'mango']
// 可以连接多个数组
let f = b.concat(a,c); 
// ['pen', 'eraser', 'apple', 'banana', 'mango', 'panda', 'cat']

filter() 筛选符合要求的元素

参数: curValue ( 可选 : index arr )

let arr = [1, 2, 3, 4, 5, 6, 7, 8];
let res = arr.filter(curValue => curValue > 5);  // 返回值大于5的
console.log(res); // [6, 7, 8]

map() 映射新数组

参数: curValue ( 可选 : index arr )

let arr = [1, 2, 3, 4];
let res = arr.map(curValue => curValue * 2);
console.log(res); // [2,4,6,8]

slice() 截取

参数 : [ start , end ) 包前不包后

let arr = [1, 3, 6, 2, 0];
let res = arr.slice(1, 3);
console.log(res); // [3, 6] 包前不包后
​
let arr = [1, 3, 6, 2, 0];
let res = arr.slice(0, 0); 
console.log(res); // []
​
let arr = [1, 3, 6, 2, 0];
let res = arr.slice(-3, -1);
console.log(res); // [6, 2]
​
let arr = [1, 3, 6, 2, 0];
let res = arr.slice(1);
console.log(res); // [3, 6, 2, 0] 
​
let arr = [1, 3, 6, 2, 0];
let res = arr.slice();
console.log(res); // [1, 3, 6, 2, 0] 相当于不截取 直接返回原数组

改变原数组的方法

push() 末尾添加新项目,并返回数组新长度

let arr = [1, 2, 3, 4];
let res = arr.push(0);
console.log(res, arr);  // 5  [1, 2, 3, 4, 0]

unshift() 头部添加新项目,并返回数组新长度

let arr = [1, 2, 3, 4];
let res = arr.unshift(0);
console.log(res, arr);  // 5  [0, 1, 2, 3, 4]

pop() 移除数组的最后一项, 并返回该元素

let arr = [1, 2, 3, 4];
let res = arr.pop();
console.log(res, arr);  // 4 [1,2,3]

shift() 移除数组的第一项, 并返回该元素

let arr = [1, 2, 3, 4];
let res = arr.shift();
console.log(res, arr);  // 1 [2,3,4]

sort() 排序

!!!! 会改变原数组 !!!!

排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)

默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序

let arr = [1, 3, 6, 2, 0];
arr.sort((a, b) => a - b); // [0, 1, 2, 3, 6]
arr.sort((a, b) => b - a) // [6, 3, 2, 1, 0]
arr.sort(); // [0, 1, 2, 3, 6]
​
// 要进行字符串数字排序且 sort 不传递函数时, 会根据ASCII顺序排列, 可能与正确顺序会产生偏差
let arr = ['25', '100', '3', '40', '5'];
arr.sort();  // ['100', '25', '3', '40', '5']  因为 '2' 比 '1' 大
arr.sort((a, b) => a - b); // ['3', '5', '25', '40', '100']
arr.sort((a, b) => b - a); // ['100', '40', '25', '5', '3']

splice() 增添元素, 并返回被删除的元素

参数 : startIndex cutNum replaceEle

开始索引 截取个数 要替换的元素

let arr = [1, 3, 6, 2, 0];
let res = arr.splice(1, 3, 2222, 333);  
//            1:  开始索引
//            3:  截取个数
//    2222, 333:  要替换的元素
console.log(res, arr); // [3, 6, 2]  [1, 2222, 333, 0]
​
let arr = [1, 3, 6, 2, 0];
let res = arr.splice(1, 3);
console.log(res, arr); // [3, 6, 2]  [1, 0]
​
// 只想要添加数据时, 第二个参数为 0 即可
 let arr = [1, 3, 6, 2, 0];
let res = arr.splice(2, 0, 111);
console.log(res, arr); // []  [1, 3, 111, 6, 2, 0]
​
let arr = [1, 3, 6, 2, 0];
let res = arr.splice(2); // 只写一个参数表示截取的开始索引
console.log(res, arr); // [6, 2, 0]  [1, 3]

其他

every() 是否符合要求

检查每个元素是否符合,每一项都符合返回 true , 有不符合的直接略过后面元素的验证返回 false

let arr = [1, 2, 3, 4, 5, 6, 7, 8];
let res1 = arr.every((curVal, index, arr) => curVal > 0); // 判断每一项是否都大于0
console.log(res1); // true
​
let res2 = arr.every((curVal, index, arr) => curVal > 5); // 判断每一项是否都大于5
console.log(res2); // false

some() 是否符合要求

如果找到函数返回为 true 的数组元素,直接略过后面元素的验证返回true, 否则返回false

let arr = [1, 2, 3, 4];
let res = arr.some(item => item > 3)
console.log(res);  // true
​
let arr1 = [1, 2, 3, 4];
let res1 = arr1.some(item => item < 0)
console.log(res1);  // false

includes() 确定数组是否包含指定的元素

let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.includes(4);
console.log(res); // true
​
// 第二个参数, 遍历起始的索引
let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.includes(4, 4); // 从索引4开始检索
console.log(res); // false

join() 将数组转化为字符串

默认分隔符为逗号

let arr = [1, 2, 4, 6, 7, 4];
let res = arr.join();
console.log(res); // 1,2,4,6,7,4
​
let arr = [1, 2, 4, 6, 7, 4];
let res = arr.join('-');
console.log(res); // 1-2-4-6-7-4
​
let arr = [1, 2, 4, 6, 7, 4];
let res = arr.join('');
console.log(res); // 124674

reduce() 累加

参数: pre cur ( 可选 : index arr )

let arr = [1, 2, 3, 4];
let res = arr.reduce((pre, cur) => {
    return pre + cur
}, 0); // 别忘记写初始值
console.log(res);  // 10

reverse() 反转

let arr = [1, 2, 3, 4];
let res = arr.reverse()
console.log(res);  // [4, 3, 2, 1]

find() 获取数组中第一个满足条件的元素的值

let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.find(item => item > 5);
console.log(res);  // 6

findIndex() 获取数组中第一个满足条件的元素的索引

let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.find(item => item > 5);
console.log(res);  // 4

indexOf() 判断是否含有指定元素

未找到返回 -1 , 找到了返回第一个满足条件的索引

let arr = [1, 2, 5, 4, 4, 4, 4];
let res = arr.indexOf(4);
console.log(res); // 3
​
let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.indexOf(9);
console.log(res); // -1
​
// 第二个参数, 遍历起始的索引
let arr = [4, 4, 4, 4, 4, 4, 4];
let res = arr.indexOf(4, 3);
console.log(res); // 3
​
let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.indexOf(8, 3);  // 从索引3开始检索
console.log(res); // 5

lastIndexOf() 从末尾开始检索是否含有指定元素

未找到返回 -1 , 找到了返回第一个满足条件的索引

搜索将从指定位置开始,如果未指定开始位置,则从末尾开始,并在数组的开头结束搜索

如果要搜索的项目不止一次出现,将返回最后一次出现的位置

// 遍历顺序  <----------------
let arr = [1, 2, 5, 4, 4, 4, 4];
let res = arr.lastIndexOf(4, x); // 从索引为 x 的位置向索引为 0 的顺序搜索
console.log(res);
// x ---> res
// 0 ---> -1
// 1 ---> -1
// 2 ---> -1
// 3 ---> 3
// 4 ---> 4
// 5 ---> 5
// 6 ---> 6
​
let arr1 = [1, 2, 5, 4, 6, 8, 0];
let res1 = arr1.lastIndexOf(9);
console.log(res1); // -1
​
let arr2 = [4, 4, 4, 4];
let res2 = arr2.lastIndexOf(4, 1);
console.log(res2); // 1  这个案例第二个参数写什么 res2就是什么
​
let arr3 = [1, 2, 5, 4, 6, 8, 0];
let res3 = arr3.lastIndexOf(8, 3);  // 从索引3开始检索
console.log(res3); // -1

forEach() 遍历每一项

let arr = [1, 2, 5, 4, 6, 8, 0];
let res = arr.forEach((curVal, index, arr) => {
                      // 1       0    [1, 2, 5, 4, 6, 8, 0]
                      // 2       1    [1, 2, 5, 4, 6, 8, 0]
                      // 5       2    [1, 2, 5, 4, 6, 8, 0]
                      // 4       3    [1, 2, 5, 4, 6, 8, 0]
                      // ...
});

toString() 转换为字符串, 逗号分割

作用相当于 join(',')

let arr = [1, 2, 3, 4];
let res = arr.toString(); // 无参数
console.log(res);  // 1,2,3,4

isArray() 检测是否为数组

let arr = [1,2,4];
let res = Array.isArray(arr);
console.log(res); // true

let a = 2;
let res = Array.isArray(a);
console.log(res); // false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值