Javascript中数组常用方法

1. 获取数组最大值

  • 方法1
Math.max(...arr);
  • 方法2
Math.max.apply(null,arr);
  • 方法3
let max = arr[0]; 
for (let i = 0; i < arr.length - 1; i++) {
	max = max < arr[i+1] ? arr[i+1] : max ;
}
  • 方法4
arr.sort((a, b) => { 		
	 return a -b ;
}) 
console.log(arr[arr.length-1]);
  • 方法5
let max=  arr.reduce((a, b) => {
	return a > b ? a : b
})
console.log(max);
  • 方法6
let arr = [2,8,5,4,1,6];
let max = arr[0];
arr.forEach(function(item){
	if( item > max ){
		max = item;
	}
})
console.log(max);

注: reduce方法的高阶函数适用范围广,一般情况下可以传入2个参数:
第一个参数:回调函数;
第二个参数:初始值,可以是空对象,空数组,变量等,依具体情况而定。
而回调函数中有四个参数:
第一个参数:变化的值;
第二个参数: 当前操作的值;
第三个参数:当前操作的值的索引;
第四个参数:当前操作的数组。
其中reduce参数值中的第二个参数(初始值)可以省略;回调函数中的第三个参数和第四个参数 也可以省略。

改写上述方法5的完整版

 let array = [20, 30, 33, 5, 19]
 let result = array.reduce(function (prev, cur, index, array) {
   		console.log(prev, cur, index, array);
      // return prev>cur? prev:cur;
      // return Math.max(prev,cur);
      // return Math.max(...array);
      return Math.max.apply(null, array);
      console.log(prev, cur);
 })
 console.log(result);

2.去掉数组中的0值

let  array1 = [6,11,0,22,0,18,0,21,0];
let  newArr = [];
array1.forEach(function(item,index){
	if(item != 0){
		// newArr.push(item);   
		   newArr[newArr.length] = item;
	}
})
console.log(newArr);

3.数组排序

//从小到大排序
 let arr = [10,8,2,15,3,56,61]
 let res = arr.sort(function(a,b){
     return a-b;
 })
  console.log(res);
//从大到小排序
 let arr1 = [10,8,2,15,3,56,61]
 let res1 = arr.sort(function(a,b){
     return b-a;
 })
  console.log(res1);

4.数组去重

indexOf() :返回第一次出现的指定子字符串在此字符串中的索引。

  • 方法1
let arr3 = ['apple', 'orange','apple','juice','watermelon'];
let arrRes = arr3.filter(function(item,index,self){
      return self.indexOf(item) === index;
}) 
 console.log(arrRes);
  • 方法2
let array4 = ['apple', 'orange','apple','juice','watermelon'];
let arr4Res = array4.reduce(function (prev, cur, index, array) {
    //console.log(prev, cur);
    //没找到返回-1
    prev.indexOf(cur) === -1 && prev.push(cur);
    return prev;
},[])

5.去掉空字符串

let arr4 = [23,50 , null ,undefined, '', 50];
let newArr4 = arr4.filter(function(item,index,self){
     return item;
})
console.log(newArr4);//[23,50,50]

6.数组求和

let array3= [6, 8, 5, 3];
let arr3= array3.reduce(function (prev, cur) {
    // console.log(prev, cur);
       return prev = prev + cur;
 })
console.log(arr3);//22

7.二维数组扁平化

let array4 = [[1, 2], [3, 4], [5, 6]];
let arr4Res = array4.reduce(function (prev, cur, index, array) {
	//console.log(prev, cur);
     return prev.concat(cur);
})
    console.log(arr4Res);

8.数组元素重复个数

let str = 'aaaabbbbcdd';
let array5 = str.split("");
//console.log(array5);
let arr5Res = array5.reduce(function (prev, cur, index, array) {
	//console.log(prev, cur);
	prev[cur] =  prev[cur]+1||1;
	return prev;
	},{})
console.log(arr5Res);//{a: 4, b: 4, c: 1, d: 2}

对于其他常用方法,查阅资料即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值