网站首页 > 技术文章 正文
1、给数组先排序(由大到小排序),第一项就是最大值
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = ary.sort(function (a, b) {
return b - a;
})[0];
console.log(max);
2、假设法:假设第一个值是最大值,依次遍历数组中后面的每一项,和假设的值进行比较,如果比假设的值要大,把当前项赋值给MAX...
let max = ary[0];
for (let i = 1; i < ary.length; i++) {
let item = ary[i];
item > max ? max = item : null;
}
console.log(max);
3、Math.max
在此之前,首先说几个零碎的知识点:
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
console.log(Math.max(ary));//=>NaN =>Math.max是获取一堆数中的最大值,需要我们把比较的数,一个个的传递给这个方法 =>Math.max(12,13,14...) =>Math.max([12,13,14...])这样只是传递一个值。
(1)eval:把字符串转换为JS表达式
eval("1+2") =>3
(2)括号表达式(小括号的应用)
用小括号包起来,里面有很多项(每一项用逗号分隔),最后只获取最后一项的内容(但是会把其它的项也都过一遍)
(function(){
console.log(1);
},function(){
console.log(2);
})();
=>2
不建议大家过多使用括号表达式,因为会改变THIS。
使用Math.max排序之前要利用APPLY的一个特征:虽然放的是一个数组,但是执行方法的时候,也是把数组中的每一项一个个的传递给函数。
let ary = [12, 13, 14, 23, 24, 13, 15, 12];
let max = Math.max.apply(null, ary);
console.log(max);
这样就可以实现Math.max排序了。
还可以基于ES6中的展开运算符完成:
let max = Math.max(...ary);
console.log(max);
4、解构赋值
解构赋值:按照一个数据值的结构,快速解析获取到其中的内容
真实项目中一般都是针对于数组或者对象进行结构赋值。
(1)对象解构赋值
// let obj = {name: 'xxx', age: 25, sex: 0};
// let {name, age} = obj;//=>对象解构赋值默认情况下要求:左侧变量名和对象中的属性名一致才可以
// console.log(name, age);
// let {sex} = obj;
// console.log(sex);//=>0
// let {age: ageAA} = obj;
// // console.log(age);//=>Uncaught ReferenceError: age is not defined
// console.log(ageAA);//=>25 给解构的属性名起别名作为我们使用的变量
// let {friend = 0} = obj;
// console.log(friend);//=>0 给不存在的属性设置默认值
let fn = function ({
name = '一寒',
age = 0
} = {}) {//=>把传递的对象解构了(不传递值,默认赋值为空对象:现在传递对象或者不传递,形参接收到的都是对象),解构的时候,可以把传递进来对象中,如果某个属性不存在,我们赋值默认值
console.log(name, age);
};
fn({
name: 'xxx',
age: 25
});
(2)数组解构赋值
let ary = [12];
let [a, b = 0] = ary;//=>在解构的时候可以给变量设置默认值:如果当前变量对应结构中的这一项没有值,变量用默认值
console.log(a, b);//=>12 0
// let ary = [12, 23, 34, 45, 56];
//=>需求:获取第一项,把剩下的项作为一个数组返回
// let [a, ...b] = ary;
// console.log(a, b);//=>12 [23,34,45,56] “...”在此处称之为剩余运算符:除了前面以外的项,都放在一个数组中
// let [a, ...b, c] = ary;//=>Uncaught SyntaxError: Rest element must be last element 剩余运算符处于解构中最后的位置
// let ary = [12, 23, 34, 45, 56];
// let [a] = ary;
// console.log(a);//=>12
// let [a, , c] = ary;
// console.log(a, c);//=>12 34
猜你喜欢
- 2024-09-30 JavaScript数组_数组方法「二」(二十七)
- 2024-09-30 table组件,前端如何使用table组件打印数组数据
- 2024-09-30 前端数组改字符串方法 前端数组改字符串方法是什么
- 2024-09-30 javascript复制数组的三种方式 javascript复制粘贴
- 2024-09-30 第21节 检测数组、类数组及多维数组-Web前端开发之Javascript
- 2024-09-30 前端系列——ES6中循环数组的方法
- 2024-09-30 前端已死?请用TS写出20个数组方法的声明
- 2024-09-30 springboot项目中,前端如何传递一个自定义对象数组给后端
- 2024-09-30 带你走进javascript数组的世界 javascript数组操作方法
- 2024-09-30 每天学点 ES6 —— 数组(二) es6数组处理方法
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)