几道面试题

1、通过原型扩展Array的distinct方法
经过好几种方式的最终还只有一种傻办法实现
其原理为,定义两个数组,一个为筛选过后的数组,一个为原数组
其代码如下

/ 方法一 新建一个临时数组进行接收,然后进行匹对返回
Array.prototype.distinct =
    function () {
        let arr = this; 
        let new_arr = [];
        if (arr.length == 0) {
            new_arr = arr;
        } else {
            arr.forEach((item, index) => {
                if (new_arr.indexOf(item) < 0) {
                    new_arr.push(item);
                }
            });
        }
        return new_arr;
    }
//for test
let arr = [4, 5, 6, 7, 4, 34, 7, 5, 6, 7, 56]
console.log(`原来数组 ${arr} \n输出数组${arr.distinct()} `);
  • 在摸索的过程中又重新温习了 Array.splice(index,many,item1…) 进行增删改功能参考 数组Splice方法(增 删 改)
  • 学习了使用Array.sort进行排序JavaScript sort() 方法
    语法
    arrayObject.sort(sortby)
    参数 描述
    sortby 可选。规定排序顺序。必须是函数。
    返回值
    对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
    说明
    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    若 a 等于 b,则返回 0。
    若 a 大于 b,则返回一个大于 0 的值。

小例子一个:

[4, 5, 6, 7, 4, 34, 7, 5, 6, 7, 56].sort((a,b)=>{return a-b})
//输出[4, 4, 5, 5, 6, 6, 7, 7, 7, 34, 56]

2、HTML 5 应用程序缓存(cache)参考

index.html

<!DOCTYPE HTML>
<html manifest="demo.appcache">

<body>
The content of the document......
</body>

</html>

demo.appcache

CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js

NETWORK:
login.asp

FALLBACK:
/html5/ /404.html

其中demo.appcache是一个缓存描述文本文件(推荐以appcache为后缀)
manifest 文件可分为三个部分:
CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)其中上面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "/404.html" 替代 /html5/ 目 录中的所有文件

重要的提示:以 "#" 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,711评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,855评论 18 399
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,861评论 1 19
  • 为什么需要关键词来为自己定位? 我过去有些鄙视这种“装腔调”的做法,一个人是多面而丰富的,怎么能被几个词概况了之。...
    晓天狼星阅读 364评论 3 1

友情链接更多精彩内容