1.js的计算方法
1.1.reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
let sumA = A.reduce((a,b)=>{return a+b},0)reduce有一个回调参数和初始值a,代表初始值为0,b代表数组的每一项,由此相加获取A数组和
1.2 sort() 方法数组排序,数组中的每个值(从左到右)开始排列,最终排列成数组。
let sumA = A.sort((a,b)=>{return a-b})A数组排序
2.字符串转数字会自动去除字符串前面的0
3.代码规范:尽量用const赋值,可以更改对象和函数的值,单一值需要变换用let声明,
在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;最后一个原因是 JavaScript 编译器会对const进行优化,所以多使用const,有利于提供程序的运行效率,也就是说let和const的本质区别,其实是编译器内部的处理不同。
4.find()返回数组中符合条件的第一个值,没有就返回undefined
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。 ```javascript var ages = [3, 10, 18, 20];
function checkAdult(age) { return age >= 18; }
function myFunction() { document.getElementById(“demo”).innerHTML = ages.find(checkAdult); }//18
<a name="T8RZ5"></a>### 5.作用域链是从下往上找的,都没有才是window上挂载的变量例如```javascriptlet i =10function ad(){let i =20function add(){i += 10 //往上找到i=20,加10 等于30,如果没有就找全局i=10就等于20console.log(i) //30}add();console.log(i)//20 如果没有就找全局i=10就等于10}()
6.数组扁平化
1.//数组扁平化reduce()递归方法let arr = [1, [2, 3, [4, 5]]];function flat(arr){return arr.reduce((result,item)=>{return result.concat(Array.isArray(item)?flat(item):item)//通过递归将数组里的数组整合为一个在再最外面整合},[])}console.log(flat(arr));2.直接递归let arr = [1, [2, 3, [4, 5]]];function flat(arr){let result = [];arr.map(item => {if(Array.isArray(item)){result = result.concat(flatten(item));//返回新数组需要接收}else{result.push(item)}})return result;}console.log(flat(arr));3.扩展运算符let arr = [1, [2, 3, [4, 5]]];function flatten(arr) {while(arr.some(item=>Array.isArray(item))) {arr = [].concat(...arr);}return arr;}console.log(flatten(arr));
