Es6类数组length属性和扩展方法,find(),findIndex(),fill(),copyWithin(),entries()...用法
类数组对象
一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
{let arr = Array.from({0: "1",1: "faf",2: "ad",length: 3});console.log(arr); //[ '1', '2', 3 ]
}// 没有 length 属性,则返回空数组
{let arr1 = Array.from({0: "1",1: "2",2: 3,});console.log(arr1); //[]
}// 元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组
{let arr1 = Array.from({a: 1,b: 2,c: 3,length: 3});console.log(arr1); //[ undefined, undefined, undefined ]
}
扩展的方法
查找
find()
查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
//Es5写法let a = Array.of(1, 2, 3, 4, 5,);let b = a.find(function (x) {return x > 2})console.log(b); //3//Es6写法let a1 = Array.of(1, 2, 3, 4, 5,);let b1 = a.find( x=>x>2)console.log(b1); //3
findIndex()
查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引
let a =Array.of(1,2,3,4,5,6);[0,1,2,3,4,5]//大于4的第一个索引是4let b = a.findIndex(x=>x>4)console.log(b);
填充
fill()
将一定范围索引的数组元素内容填充为单个指定的值。
let arr = Array.of(1, 2, 3, 4);
// 参数1:用来填充的值
// 参数2:被填充的起始索引
// 参数3(可选):被填充的结束索引,默认为数组末尾
console.log(arr.fill(0,1,2)); // [1, 0, 3, 4]let a = Array.of(1,2,3,4);
// 第二个参数,和第三个参数 ----指定值,表示:从哪开始填,填到那结束
let r = a.fill(0,1)
console.log(r); //[1,0,0,0]
copyWithin()
将一定范围索引的数组元素修改为此数组另一指定范围索引的元素
// 参数1:被修改的起始索引
// 参数2:被用来覆盖的数据的起始索引
// 参数3(可选):被用来覆盖的数据的结束索引,默认为数组末尾
{let a = Array.of(1,2,3,4);let b = a.copyWithin(0,2,3);console.log(b); //[3,2,3,4]let a1 = [1,2,3,4,5,6].copyWithin(2,3,5);console.log(a1); //[1,2,4,5,5,6]// 参数2,,,3为负数表示倒数let b1 = [1,2,3,4,5,6].copyWithin(-2,0);console.log(b1); //[ 1, 2, 3, 4, 1, 2 ]}
遍历
entries()
遍历键值对
let a = [1, 2, 3];for (let [k, v] of a.entries()) {console.log(k + "---" + v); //0---1 1---2 2---3}// 不使用 for... of 循环// next()获取数组中某个索引上的内容,获取到的内容是一个对象;let b = a.entries();console.log(b.next().value);console.log(b.next().value); // [ 0, 1 ] [ 1, 2 ] // Object.entries(a) 获取数组中某个索引上的内容let c = Object.entries(a)[1];console.log(c); //[ '1', 2 ]// 数组对象let d = [{id: 1,name: "ada",age: 15},{id: 2,name: "adja",age: 20}]let a1 = Object.entries(d)[1][1].age;console.log(a1); //20
keys() 遍历键名。 values() 遍历键值。
// keys()遍历键名。(获取数组中所有内容的键名)let arr = ["小红", "小明", "小花"];for (let w of arr.keys()) {console.log(w); // 0 1 2}// values()遍历值名。(获取数组中所有内容的值名)let arr1 = ["小红", "小明", "小花"];for (let w1 of arr1.values()) {console.log(w1); //小红 小明 小花}
包含
includes()
数组是否包含指定值。
注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。
// 参数1:包含的指定值 let a = [1, 2, 3];if (a.includes(3)) {console.log("true");} else {console.log("false");} //true// 同时用参数1和参数2// 参数2:可选,搜索的起始索引,默认为0let b = [100, 200, 100, 300, 100];// 参数1----要找的内容;// 参数2---从哪去找let c = b.includes(100, 2);console.log(c); //true
嵌套数组转一维数组
flat()
对多数组进行降维处理,flat()值默认为1let a = [1, [2, [3, [4, [5]]]]].flat(3);console.log(a); //[ 1, 2, 3, 4, [ 5 ] ]//Infinity 不管嵌套多少层,无限降为,直到1维为止,注:首字母大写let a1 = [1, [2, [3, [4, [5]]]]].flat(Infinity);console.log(a1); // [ 1, 2, 3, 4, 5 ]// 自动跳过空位(降为之后,会把空位上的内容underfined,自动去掉)let a2 = [1, 2, [, 3], 4];console.log(a2.flat()); // [ 1, 2, 3, 4 ]
flatMap()
先对数组中每个元素进行了的处理,再对数组执行 flat() 方法。
let arr= [1, 2, 3, 4, 5].flatMap(function (x) {return [x * 20];})console.log(arr); //[ 20, 40, 60, 80, 100 ]let arr1 = [2, 3, 4,].flatMap((x) => [x * 10]);console.log(arr1); //[ 20, 30, 40 ]
Es6类数组length属性和扩展方法,find(),findIndex(),fill(),copyWithin(),entries()...用法相关推荐
- 第八节:ES6为数组做了哪些扩展?
广东的小伙伴大家还好吗,天气都热成狗了! 今天就不发预告了,直接推送图文. 前面讲了字符串和数值的扩展,今天要讲的是:数组的扩展.不知道大家能否跟得上这个节奏,你们在阅读中对讲解有存在疑惑,记得留言提 ...
- java size_Java length() 方法,length 属性和 size() 方法的区别
豆妮的小奴隶 length() 方法,length 属性和 size() 方法的区别: 1.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法: 2.leng ...
- length() 方法,length 属性和 size() 方法的区别:
length()是针对字符串来说的,要得到一个字符串的长度就要用它的length()方法: length属性是针对java数组来说的,求数组的长度就用它的length属性: size()方法是针对泛型 ...
- C#学习笔记四: C#3.0自动属性匿名属性及扩展方法
前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...
- Java length() 方法、length 属性和 size() 方法有什么区别?
目录 一.解答 二.代码 一.解答 1.length() 方法: 是针对字符串来说的,要求一个字符串的长度就要用到它的 length() 方法. 2.length 属性: 是针对 Java 中的数组来 ...
- indexof方法_[ 翻译 ] ES6中数组去重的三种方法
原文:How to Remove Array Duplicates in ES6 翻译:Hytonight云息 有三种方法可以过滤掉一个数组的重复元素并且返回去重后的新数组.我最喜欢使用Set,因为它 ...
- ES6新特性_ES6的对象扩展方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记040
然后我们看一下es6中的对象扩展方法 可以看到有个Object.is(120,121); 这个相当于判断是否相等,也就是是否是某个对象. 可以看到120,和121 不相等. 然后120和120相等. ...
- Python类的私有属性、私有方法、类方法
一.类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有 1.类的私有属性不能被类的实例直接访问,示例代码如下: class A:__secretCount = 0 # 私有 ...
- Python 类对象及属性内置方法 classmethod、delattr、dir、hasattr、getattr、callable
1. classmethod classmethod 修饰符对应的函数不需要实例化,不需要 self 参数.第一个参数需要是表示自身类的 cls 参数,能调用类的属性.方法.实例等. class Pe ...
最新文章
- AndoridSQLite数据库开发基础教程(5)
- java set null值,从Java ResultSet检查null int值
- StarWind RAM 磁盘仿真程序
- MySQL默认库可以删_个人总结:Sql(一:创建删除修改库表||附:mysql数据类型及默认值)...
- MLFlow︱机器学习工作流框架:介绍(一)
- scala type关键字用于起别名
- linux登录闪回登录界面,两种闪回查询的使用实验
- ButterKnife的安装与使用以及ButterKnife右键不显示的大坑
- NetLog 大规模应用实战:Database-sharding 技术
- FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程
- Random类:用来产生随机数字
- 在iOS开发中如何高效使用静态库
- Oracle基础梳理之TO_CHAR()-No5
- 星上SAR实时处理调研1
- 靖哥哥教你如何用java做爬虫抓取网站美女图片(详解步骤)
- 疫情当下,选择代理加盟互联网广告项目的优势
- 2021爱分析・数据智能平台实践报告—重构数据智能时代的数据基础设施
- Java 基础——HashMap 遍历方式
- MNIST是什么鬼?
- 推荐5个免费的字体转换网站工具
热门文章
- MATLAB应用——曲线长度的求解
- Linux 图片转换命令 convert
- 敲黑板,定积分也有换元和分部积分法!
- labelme_json_to_dataset不能转换关键点的问题
- sap采购申请自动转采购订单_我的SAP运维日常_0021_MM_计划订单转采购申请时绑定凭证类型...
- Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVersion’
- 【技术文档】centernet(姿态估计)
- 计算机管理中没有telnet,Win10专业版没有telnet客户端怎么办?
- 【免费资源必备】LingoDeer,扫描全能王直装版等五款APP让你享受上千个免费资源
- 切入点和切入点表达式(AOP面向切面编程)