1.js的计算方法

1.1.reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

  1. let sumA = A.reduce((a,b)=>{
  2. return a+b
  3. },0)
  4. reduce有一个回调参数和初始值
  5. a,代表初始值为0b代表数组的每一项,由此相加
  6. 获取A数组和

1.2 sort() 方法数组排序,数组中的每个值(从左到右)开始排列,最终排列成数组。

  1. let sumA = A.sort((a,b)=>{
  2. return a-b
  3. })
  4. A数组排序

2.字符串转数字会自动去除字符串前面的0

3.代码规范:尽量用const赋值,可以更改对象和函数的值,单一值需要变换用let声明,

  1. letconst之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。
  2. const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;最后一个原因是 JavaScript 编译器会对const进行优化,所以多使用const,有利于提供程序的运行效率,也就是说letconst的本质区别,其实是编译器内部的处理不同。

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

  1. <a name="T8RZ5"></a>
  2. ### 5.作用域链是从下往上找的,都没有才是window上挂载的变量
  3. 例如
  4. ```javascript
  5. let i =10
  6. function ad(){
  7. let i =20
  8. function add(){
  9. i += 10 //往上找到i=20,加10 等于30,如果没有就找全局i=10就等于20
  10. console.log(i) //30
  11. }
  12. add();
  13. console.log(i)//20 如果没有就找全局i=10就等于10
  14. }()

6.数组扁平化

  1. 1.//数组扁平化
  2. reduce()递归方法
  3. let arr = [1, [2, 3, [4, 5]]];
  4. function flat(arr){
  5. return arr.reduce((result,item)=>{
  6. return result.concat(Array.isArray(item)?flat(item):item)//通过递归将数组里的数组整合为一个在再最外面整合
  7. },[])
  8. }
  9. console.log(flat(arr));
  10. 2.直接递归
  11. let arr = [1, [2, 3, [4, 5]]];
  12. function flat(arr){
  13. let result = [];
  14. arr.map(item => {
  15. if(Array.isArray(item)){
  16. result = result.concat(flatten(item));//返回新数组需要接收
  17. }else{
  18. result.push(item)
  19. }
  20. })
  21. return result;
  22. }
  23. console.log(flat(arr));
  24. 3.扩展运算符
  25. let arr = [1, [2, 3, [4, 5]]];
  26. function flatten(arr) {
  27. while(arr.some(item=>Array.isArray(item))) {
  28. arr = [].concat(...arr);
  29. }
  30. return arr;
  31. }
  32. console.log(flatten(arr));