javascript学习日记1

0.前言

今天继续使用廖大的教程进行javascript的学习。主要学习了filter()sort()等高阶函数。虽然完成了廖大的练习题,但是自己还是有自知之明的,从实际的角度上来说,我还是没有完全搞懂高阶函数,包括之前的map()reduce()

1. filter()函数

filter()函数可以用来过滤数组,将剩下的元素组合返回。filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
    return x % 2 !== 0;
});
r; // [1, 5, 9, 15]//筛选掉偶数
廖大出了一个一道题目,用filter()函数筛选素数:
//以下是解决方案,此方案参考了廖大教程下方的一位同学的算法
//思路是从2开始直到element-1之前一直让element对i取余,如果结果为零说明被除1和自身之外的其他数整除,则这样的数字return false被排除即可,最后一句return element!=1可以排除1这个数字本身。
'use strict';
function get_primes(arr) {
      return arr.filter(function(element,index,self){
           for(var i = 2;i<element - 1;i++){
                if(element % i === 0){return false};
      }
      return element !=1;
   }      
)}
// 测试:
var
    x,
    r,
    arr = [];
for (x = 1; x < 100; x++) {
    arr.push(x);
}
r = get_primes(arr);
if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) {
    alert('测试通过!');
} else {
    alert('测试失败: ' + r.toString());
}

2. sort()函数

sort()函数廖大的教程中没有练习题,不过仔细阅读了廖大的教程之后有几个特别的点要自己注意。sort()函数的排序是统一转换成String之后按照ASCLL码值进行排序的。所以在使用sort()函数的时候尽量不要直接使用sort()函数进行排序,因为sort()函数也是高阶函数,也就意味着其可以接受函数作为参数,那么在使用sort()函数的时候可以将自己的排序规则写进sort()函数的参数中来实现自己独特的排序。

下一个例子是廖大的我觉得比较经典的一个例子:

/*下面的方法是将arr进行排序,sort()中的参数function的作用是将所有的字符串全部变成大写,然后在使用sort()进行统一的
排序,这样就可以避免大小写造成的ASCLL码值比较的时候产生的意外情况*/
var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
    x1 = s1.toUpperCase();
    x2 = s2.toUpperCase();
    if (x1 < x2) {
        return -1;
    }
    if (x1 > x2) {
        return 1;
    }
    return 0;
}); // ['apple', 'Google', 'Microsoft']

3. 后记

不知道今天的日记写完之后目录结构能不能对一次…..翻看前两天的日记发现目录结构根本对不上,说明我的Markdown语法还不够熟练,今天写的时候也有稍微注意一点,所以希望能够正确……嗯今天没有处理cocos creater的项目,看了一部动漫,算是比较荒废。不过只要坚持下来我相信一定能够学有所成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据开发中的shell学习日记可以包括以下内容: 1. 学习Linux命令和shell脚本:作为大数据开发者,在Linux下进行开发是常见的,因此了解一些基本的Linux命令和编shell脚本的技能是必备的。 2. 学习Django:Django是一个常用的Python Web框架,对于大数据开发来说,掌握Django可以帮助你构建数据分析和机器学习的应用程序。 3. 数据分析与机器学习:大数据开发中经常需要进行数据分析和机器学习的工作,因此学习相关的技术和算法是必要的。可以参考一些前人的经验贴和教程,了解常见的数据分析和机器学习方法。 4. 大数据组件:了解大数据开发中常用的组件,如Hadoop、Spark等,掌握它们的基本原理和使用方式。 5. 前端内容:虽然大数据开发主要是后端的工作,但了解一些基本的前端知识也是有帮助的,比如HTML、CSS和JavaScript。 6. 数据架构:了解大数据开发中的数据架构,包括数据采集层、数据存储与分析层、数据共享层和数据应用层等,这对于设计和搭建大数据系统是很重要的。 此外,你还可以在牛客网等平台上深入学习和交流大数据开发的经验和知识。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java版斗地主源码-Interview-Summary:回顾这两年来学了些什么和日记,private](https://download.csdn.net/download/weixin_38592548/19393922)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [程序员必备学习资源资料库!!!免费开发书籍中文版大全](https://blog.csdn.net/qq_32146369/article/details/106194267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [大数据平台架构--学习日记(一)](https://blog.csdn.net/lp279579561/article/details/104746083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值