js 排序数组;取大小值;对象数组排序

21 篇文章 0 订阅

1.sort排序

sort是es6新增的方法 排序会直接改变的是原数组

const arr = [1,51,25,41,5]

arr.sort((a, b) => {
	// b-a从大到小 a-b从小到大
    return b - a
})

sort函数也可以排序对象数组

const arrobj = [
	{
		id: 1,
		name: 'haha'
	},
	{
		id: 20,
		name: 'sasa'
	},
	{
		id: 15,
		name: 'fafa'
	}
]
arrobj.sort((a, b) => {
	return a - b 
})
arrobj // [{id: 1, name: 'haha'}, {id: 15, name: 'fafa'}, {id: 20, name: 'sasa'}]

// 比较字符串
arrobj.sort(function(a, b){
	  var x = a.name.toLowerCase();
	  var y = b.name.toLowerCase();
	  if (x < y) {return -1;}
	  if (x > y) {return 1;}
	  return 0;
});

2.假设法取大小值

假设当前数组中的第一个值是最大值,然后拿这个最大值和后面的项逐一比较,如果后面的某一个值比假设的值还大,说明假设错了,我们把假设的值进行替换。最后得到的结果就是我们想要的。

// 获取最大值:

let arr = [22,13,6,55,30];
let max = arr[0];

for(let i = 1; i < arr.length; i++) {
   let cur = arr[i];
   cur > max ? max = cur : null
}

console.log(max); // 55

// 获取最小值:

let arr = [22,13,6,55,30];
let min = arr[0];

for(let i = 1; i < arr.length; i++) {
  let cur = arr[i];
  cur < min ? min = cur : null
}
console.log(min)  // 6

3.使用 Math 中的 max/min 方法取大小值

可以使用apply来实现。apply传入的是一个数组。

var arr = [22,13,6,55,30];

var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);

console.log(max, min) // 55,6

4.使用ES6的扩展运算符

 //ES5 取数组最大值
console.log(Math.max.apply(this, [654, 233, 727]));
//ES6 扩展运算符
console.log(Math.max(...[654, 233, 727]))
//相当于
console.log(Math.max(654, 233, 727))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值