Array.of

console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4]
console.log(Array.of(undefined)); // [undefined]

检测数组

[] instanceof Array; // true
Array.isArray([]);  //true

fill
使用fill()方法可以向一个已有的数组中插入全部或部分相同的值。开始索引用于指定开始填充的位置,它是可选的。如果不提供结束索引,则一直填充到数组末尾。

数组的所有的方法,只要涉及到开始下标和结束下标,那么开始下标就是>=的关系,结束下标就是<的关系。如果结束下标没有,那么就一直到数组的末尾了。

const zeroes = [0, 0, 0, 0, 0]; // 用5填充整个数组
zeroes.fill(5);
console.log(zeroes); // [5, 5, 5, 5, 5]// 用6填充索引大于等于3的元素
zeroes.fill(0); // 重置
zeroes.fill(6, 3);
console.log(zeroes); // [0, 0, 0, 6, 6]// 用7填充索引大于等于1且小于3的元素
zeroes.fill(0); // 重置
zeroes.fill(7, 1, 3);
console.log(zeroes); // [0, 7, 7, 0, 0];// 用8填充索引大于等于1且小于4的元素
// (-4 + zeroes.length = 1)
// (-1 + zeroes.length = 4)
zeroes.fill(8, -4, -1);
console.log(zeroes); // [0, 8, 8, 8, 0];

fill()静默忽略超出数组边界、零长度及方向相反的索引范围 [^fill()]:注解如下:

const zeroes = [0, 0, 0, 0, 0];
zeroes.fill(1, -10, -6);    // 索引过低,忽略
console.log(zeroes); // [0, 0, 0, 0, 0]
zeroes.fill(1, 10, 15);     // 索引过高,忽略
console.log(zeroes);    // [0, 0, 0, 0, 0]
zeroes.fill(2, 4, 2);   // 索引反向,忽略
console.log(zeroes); // [0, 0, 0, 0, 0]
zeroes.fill(4, 3, 10);  // 索引部分可用,填充可用部分
console.log(zeroes);    // [0, 0, 0, 4, 4]

copyWithin

copyWithin()会按照指定范围浅复制数组中的部分内容,然后将它们插入到指定索引开始的位置。开始索引和结束索引则与fill()使用同样的计算方法。

let ints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
// 从ints中复制索引0开始的内容,插入到索引5开始的位置
// 在源索引或目标索引到达数组边界时停止
ints.copyWithin(5);
console.log(ints); // [0, 1, 2, 3, 4, 0, 1, 2, 3,4]let ints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
// 从ints中复制索引5开始的内容,插入到索引0开始的位置
ints.copyWithin(0, 5);
console.log(ints); // [5, 6, 7, 8, 9, 5, 6, 7, 8, 9]let ints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
// 从ints中复制索引大于0并且小于3的内容
// 插入到索引4开始的位置
ints.copyWithin(4, 0, 3);
console.log(ints); // [0, 1, 2, 3, 0, 1, 2, 7, 8, 9]let ints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
ints.copyWithin(2, 0, 6);
console.log(ints); // [0, 1, 0, 1, 2, 3, 4, 5, 8, 9]// 支持负索引值,与fill()相对于数组末尾计算正向索引的过程是一样的
let ints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
ints.copyWithin(-4, -7, -3);
console.log(ints); // [0, 1, 2, 3, 4, 5, 3, 4, 5, 6]

静默忽略超出数组边界、零长度及方向相反的索引范围(同[^fill()]方法一样)

程序猿头头(数组应用)相关推荐

  1. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  2. 程序猿修仙之路--数据结构之你是否真的懂数组?

    数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据结构与算法相辅相成,亦是阴阳互补之法. 开篇 说 ...

  3. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

  4. JAVA程序猿面试题汇总

    (此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...

  5. 关于CPU Cache——程序猿需要知道的那些事

    先来看一张本文所有概念的一个思维导图 为什么要有CPU Cache 随着工艺的提升最近几十年CPU的频率不断提升,而受制于制造工艺和成本限制,目前计算机的内存主要是DRAM并且在访问速度上没有质的突破 ...

  6. 程序猿的崛起,一篇文章看懂编程语言

    王国维在<人间词话>里写道:古今之成大事业.大学问者,必经过三种之境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消得人憔悴 ...

  7. 建议 | 在中国不是程序猿,不建议你用序列化!

    Hi!我是小小,今天是本周的第四篇,本篇将会着重讲解关于Java序列化的内容 Java序列化 java序列化和反序列化数据,是通过ObjectOutputStream和ObjectInputStrea ...

  8. 面试 | 阿里P7级别程序猿亲身告知,不会面试,还想进大厂?做梦吧

    Hi!我是小小,今天是本周的第四篇,在这篇中,将会着重的讲解关于面试的一些内容. 一般来说,将会考察一些以下需要的技术点:看看聪明的你能答出几道来. Java基础知识面试题 Java概述 何为编程? ...

  9. 二叉搜索树的2层结点统计_植树节,程序猿种的那些树

    公历 3 月 12 日是一年一度的植树节.旨在宣传保护森林,并动员群众参加植树造林活动.说到树,程序猿们肯定不陌生,趁着这个植树节到来之时普及一下程序猿们经常遇见的树. 1. 二叉搜索树 定义 二叉搜 ...

  10. 《采访中收集程序猿》学习记录5

    印象笔记同步分享:<程序猿面试宝典>学习记录5 <程序猿面试宝典>学习记录5 第9章 STL模板与容器 9.1.向量容器 考点1:对容器保存的元素类型的限制 voctor< ...

最新文章

  1. ​关于虚拟机迁移文档(p2v v2v
  2. CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解
  3. kafka 丢弃数据_kafka 生产者和幂等
  4. thinkphp5.0学习(九):TP5.0视图和模板
  5. poj3249Test for Job(记忆化搜索)
  6. 11年潜心研究产品 全屋智能品牌Aqara终于要开发布会了
  7. 查询长期未登录AD的用户
  8. 试戴系统完全开放—zoomla!逐浪cms在后4.6时代的又一个亮点
  9. 解决Maven项目pom文件中出现的错误:Missing artifact oracle:ojdbc7:jar:12.1.0.2.0:compile
  10. swagger配置及注解详解
  11. 颠覆你的思维,探寻人类发展史
  12. ssm基于微信小程序的物流仓储系统vue
  13. Windows系统日志文件分析
  14. 百度:自动驾驶出租车服务在北京全面开放!人工智能牛
  15. 微信备份到云服务器失败怎么回事,icloud云备份失败怎么办 icloud云备份失败原因及解决方法...
  16. 【72】编辑距离问题
  17. Elixir GenServer
  18. StreamWriter
  19. mysql8主从复制集群_mysql8主从复制服务器搭建
  20. 使用thinkphp做商城,如何调用物流API接口

热门文章

  1. git 出现错误fatal: Unable to create ‘project_path/.git/index.lock‘: File exists.
  2. 我们管理20人团队的方法
  3. 京东数据化运营(四)— 客单价篇
  4. HDS NAS原理及Storage Pool方案
  5. 使用esp8266前的网络基础
  6. JavaWeb自学笔记
  7. 计算机网络---通过DNS服务器查询Web服务器的IP地址
  8. 0-glusterfs: failed to set volfile server: File exists
  9. 编译器处理虚函数的原理
  10. SAS 典型相关分析