JS数组常用的方法总结20种

目录

1、join(): 数组转字符串

2、push() 和 pop(): 数组尾部添加/移除一项

3、shift() 和 unshift(): 数组头部移除/添加一项

4、reverse(): 数组数据反转

5、sort() : 数组内的数据进行排序(默认为升序)

6、slice() : 截取指定位置的数组

7、splice() : 向数组中添加,或从数组删除,或替换数组中的元素

8、toString() : 将数组转换成字符串

9、indexOf() : 查询在数组中指定的数据返回该数据的索引

10、forEach() : 遍历数组

11、map() : 同forEach功,遍历数组

12、filter(): 过滤

13、find() : 数组循环

14、findIndex() : 数组循环

15、every() : 判断数组中每一项是否都满足条件

16、some():  判断数组中是否存在满足条件的项

17、reduce() : 逐个遍历迭代数组的所有项,然后构建一个最终返回的值

18、concat() : 用于连接两个或多个数组

1、join(): 数组转字符串

/** join('参数') 
 * 把数组的元素,以传入的参数进行分割,转换成字符串
 */ 
let arr = ['我', '爱', '你']; 
let str = arr.join(','); 
console.log(str) // '我,爱,你'

2、push() 和 pop(): 数组尾部添加/移除一项

// push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。 
// pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。 
let arr = ['张三','李四','王五']; 
let count = arr.push('马六'); 
console.log(arr); // -> ['张三','李四','王五','马六'] 
console.log(count); // -> 4 

let item = arr.pop(); 
console.log(item) // -> 马六;

3、shift() 和 unshift(): 数组头部移除/添加一项

// shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
// unshift:将参数添加到原数组开头,并返回数组的长度 。 
let arr = ['张三','李四','王五']; 
let item = arr.shift(); 
console.log(arr) // -> ['李四','王五'] 
console.log(item); // -> 张三 

let count = arr.unshift('马六'); 
console.log(arr) // -> ['马六','李四','王五'] 
console.log(count) // -> 3

4、reverse(): 数组数据反转

// reverse() 将数组的数据进行反转,并且返回反转后的数组,会改变原数组
let arr = [1,2,3,4,5]; 
let arr1 = arr.reverse(); 

console.log(arr1) // -> [5,4,3,2,1] 
console.log(arr) // -> [5,4,3,2,1]

5、sort() : 对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组

let arr = [12,2,43,5,2,5]; 
console.log(arr.sort()) // -> [12, 2, 2, 43, 5, 5] 
// 注意:通过上面的案例,你会发现 打印的数组和原数组比较还是有变化的
// [12,2,43,5,2,5] -> [12, 2, 2, 43, 5, 5];
// 但是有没有达到我们想要的结果,这是为什么呢? 
// 因为排序是针对字符的排序,先使用数组的toString()方法转为字符串
// 再逐位比较,3是大于12的,因为首位3>1,不要与Number型的数据排序混淆。 

// 那如果需要数值排序怎么办呢? 
// 如果需要数值排序,sort(callback) 需要传入一个回调涵数,
// 该函数应该具有两个参数,比较这两个参数,
// 然后返回一个用于说明这两个值的相对顺序的数字(a-b)
// 例如: 

let arr = [12,2,43,5,2,5]; 
console.log(arr.sort((a,b)=>a-b)) // -> [2, 2, 5, 5, 12, 43]

6、slice() : 截取制定位置的数组,并返回截取的数组,不会改变原数组

// 注意:slice(startIndex, endIndex)可以有两个参数,
// startIndex为必选,表示从第几位开始;
// endIndex为可选,表示到第几位结束(不包含endIndex位),省略表示到最后一位;
// startIndex和endIndex都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。 

let arr = ['张三','李四','王五','马六']; 
console.log(arr.slice(1,3)); // -> ['李四', '王五'] 
console.log(arr) // -> ['张三','李四','王五','马六']; 原数组是没有改变的。

7、splice() : 向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。

// 注意:splice(start, num, val1, val2,...);  
// 所有参数全部可选。和 slice 相比 splice 是会改变原数组的。 
// start 是开始位置,可以为负数,-1就代表从最后一位开始
// num代表要删除或者替换的长度,不能为负数。
 
let arr = ['张三','李四','王五','马六']; 
console.log(arr.splice(2,1)) // -> ['王五'] 
console.log(arr) // -> ['张三','李四','马六'] 

let arr = ['张三','李四','王五','马六']; 
console.log(arr.splice(2,1,'七郎')) // -> ['王五'] 
console.log(arr) // -> ['张三', '李四', '七郎', '马六']

8、toString() : 将数组转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。不会改变原数组

let arr = [1,2,3,4,5,6]; 
console.log(arr.toString()) // -> '1,2,3,4,5,6' // 注意:没有参数。

9、indexOf() : 根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引

// 注意:indexOf(value, start); 
// value为要查询的数据;
// start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;
// 如果查询不到value的存在,则方法返回-1 

let arr = ['张三','李四','王五','马六']; 
console.log(arr.indexOf('李四')) // -> 1 
console.log(arr.indexOf('李四',2)) // -> -1

10、forEach() ES5新增的方法,用来遍历数组,没有返回值,

// 注意:forEach(callback);callback默认有三个参数,
// 分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。 

let arr = ['张三','李四','王五','马六'] 
let a = arr.forEach((item,index,self)=>{ 
    console.log(item + "--" + index + "--" + (arr === self)); 
}) 
// 打印结果为: 
// 张三--0--true 
// 李四--1--true 
// 王五--2--true 
// 马六--3--true 
console.log(a); // -> undefined---forEach没有返回值 //该方法为遍历方法,不会修改原数组

11、map() : map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回,同forEach功能;

//注意:map(callback);callback默认有三个参数,
// 分别为value,index,self。
// 跟上面的forEach()的参数一样 
let arr = ['张三','李四','王五','马六']; 
let arr1 = arr.map(item => { 
    return '你好:'+item 
}) 
console.log(arr1) // -> ['你好:张三', '你好:李四', '你好:王五', '你好:马六']

12、filter(): 过滤

(1) 同forEach功能;

(2) filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)。

// 注意:filter(callback);callback默认有三个参数,分别为value,index,self。 
let arr = [1,2,3,4,5,6]; 
let arr1 = arr.filter((item,index,self)=>{ 
    console.log(item) // -> 1,2,3,4,5,6 
    console.log(index) // -> 0,1,2,3,4,5 
    console.log(self) // -> [1,2,3,4,5,6] 
    return item > 3 
}) 

console.log(arr1) // -> [4,5,6]

13、find() 数组的循环,查找符合条件的值,并打断循环返回找到的值

let arr = ['张三','李四','王五','马六']; 
let str = arr.find(item => item == '李四'); 
console.log(str); // -> '李四'

14、findIndex() : 数组的循环,查找到符合条件的索引并且打断循环返回找到的索引值

let arr = ['张三','李四','王五','马六']; 
let index = arr.findIndex(item => item == '李四'); 
console.log(index); // -> 1;

15、every() : 判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。

// 注意: every()接收一个回调函数作为参数,这个回调函数需要有返回值,
// every(callback);callback默认有三个参数,分别为value,index,self。 
let arr = [1,2,3,4,5,6]; 
let bool = arr.every(item => item > 0); 
console.log(bool); // -> true; 

let bool = arr.every(item => item > 3); 
console.log(bool); // -> false;

16、some():  判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。否侧就会返回false

// 注意: some()接收一个回调函数作为参数,这个回调函数需要有返回值,
// some(callback);callback默认有三个参数,分别为value,index,self。 

let arr = [1,2,3,4,5,6]; 
let bool = arr.some(item => item > 3); 
console.log(bool) // -> true; 

let bool = arr.some(item => item > 6); 
console.log(bool) // -> false;

17、reduce() : 数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。

// 注意: 参数:reduce()接收一个或两个参数:
// 第一个是回调函数,表示在数组的每一项上调用的函数;
// 第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。
// reduce(callback,initial);
// callback默认有四个参数,分别为prev,now,index,self。
// callback返回的任何值都会作为下一次执行的第一个参数。 
// 如果initial参数被省略,那么第一次迭代发生在数组的第二项上,
// 因此callback的第一个参数是数组的第一项,第二个参数就是数组的第二项。 

let arr = [10,20,30,40,50]; 
let sum = arr.reduce((prev,now) => prev+now) 
console.log(sum); // -> 150; 

let sum = arr.reduce((prev,now) => prev+now,110) 
console.log(sum) // 260

18、concat() : 用于连接两个或多个数组, 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy);   //[1, 3, 5, 7, 9, 11, 13]
console.log(arr);   // [1, 3, 5, 7](原数组未被修改)
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用JavaScript编写程序时,数组是一常见的数据结构,JavaScript 数组具有许多有用的方法,以下是其中一些常用方法及其示例: 1. push() 方法:向数组末尾添加一个或多个元素,并返回新的长度。 ```javascript let arr = [1, 2, 3]; arr.push(4); console.log(arr); // [1, 2, 3, 4] ``` 2. pop() 方法:删除数组的最后一个元素,并返回该元素的值。 ```javascript let arr = [1, 2, 3]; let lastElement = arr.pop(); console.log(lastElement); // 3 console.log(arr); // [1, 2] ``` 3. shift() 方法:删除数组的第一个元素,并返回该元素的值。 ```javascript let arr = [1, 2, 3]; let firstElement = arr.shift(); console.log(firstElement); // 1 console.log(arr); // [2, 3] ``` 4. unshift() 方法:向数组的开头添加一个或多个元素,并返回新的长度。 ```javascript let arr = [1, 2, 3]; arr.unshift(0, -1); console.log(arr); // [-1, 0, 1, 2, 3] ``` 5. slice() 方法:返回一个新的数组,包含从起始位置到结束位置(不包括结束位置)之间的元素。 ```javascript let arr = [1, 2, 3, 4, 5]; let newArr = arr.slice(1, 4); console.log(newArr); // [2, 3, 4] ``` 6. splice() 方法:向数组中插入或删除元素。可以指定要删除的元素的位置和数量,并且可以指定要添加的元素。 ```javascript let arr = [1, 2, 3, 4, 5]; arr.splice(2, 1); // 从位置2开始删除1个元素 console.log(arr); // [1, 2, 4, 5] arr.splice(2, 0, 3); // 在位置2插入元素3 console.log(arr); // [1, 2, 3, 4, 5] arr.splice(2, 1, 'three'); // 用 'three' 替换位置2的元素 console.log(arr); // [1, 2, 'three', 4, 5] ``` 7. indexOf() 方法:返回数组中第一个匹配项的索引。 ```javascript let arr = [1, 2, 3, 4, 5]; let index = arr.indexOf(3); console.log(index); // 2 ``` 8. lastIndexOf() 方法:返回数组中最后一个匹配项的索引。 ```javascript let arr = [1, 2, 3, 4, 3, 5]; let lastIndex = arr.lastIndexOf(3); console.log(lastIndex); // 4 ``` 9. forEach() 方法:对数组中的每个元素执行指定的操作。 ```javascript let arr = [1, 2, 3]; arr.forEach(function(item) { console.log(item); }) // 输出:1 2 3 ``` 10. map() 方法:返回一个新的数组,其中包含对原始数组中的每个元素应用指定函数后的结果。 ```javascript let arr = [1, 2, 3]; let newArr = arr.map(function(item) { return item * 2; }) console.log(newArr); // [2, 4, 6] ``` 11. filter() 方法:返回一个新的数组,其中包含满足指定条件的原始数组元素。 ```javascript let arr = [1, 2, 3, 4, 5]; let newArr = arr.filter(function(item) { return item % 2 === 0; }) console.log(newArr); // [2, 4] ``` 12. reduce() 方法:返回一个值,该值是通过对数组中的每个元素应用指定的函数来计算的。 ```javascript let arr = [1, 2, 3]; let sum = arr.reduce(function(total, item) { return total + item; }, 0) console.log(sum); // 6 ``` 以上是一些常用JavaScript 数组方法及其示例,它们可以帮助你轻松地对数组进行操作,实现各有用的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值