es6 数组和字符串的扩展方法
Posted akby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6 数组和字符串的扩展方法相关的知识,希望对你有一定的参考价值。
-
字符串:主要新增了模板字符串
数组新增方法:
Array.from:将类数组或迭代对象转换成数组
类数组和数组的相同点: 可以通过下标来访问,并且可以通过.length来获取类数组的元素个数 类数组和数组的区别: 类数组不能使用数组的各种api方法,数组没有问题
如何将一个类数组转换成数组?
-
第一种方法:通过ES6的Array.from(类数组)来转换
-
第二种方法:通过Array.prototype.slice.call(类数组);
-
第三种方法: ...来转换类数组
例如:var newArr=[...类数组名]
类数组通常有哪些呢:arguments,获取的DOM组成的类数组
-
copywithin:方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度
const array1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]; console.log(array1.copyWithin(0, 3, 4));
-
find():返回匹配的数组元素,没有匹配的返回undefined
-
findIndex():返回匹配的数组元素下标,没有匹配的就返回-1
-
fill(value,start,end) 填充数据
-
keys(), values(), entries()返回迭代器,必须通过for of来遍历返回
例如: for(let [key,value] of arr.entries()) { console.log(`下标为${key},对应的值为${value}`) } 对象也有类似获取values,keys,entries方法 Object.values():获取对象的值(即value) Object.keys() :获取对象的属性(即key) Object.entries() 获取对象的key和value var obj={ username:‘张三‘, age:20, address:‘北京‘ } 转换成字符串拼接的形式: let url="http://www.badiu.com/" userinfo=‘张三‘&age=20&address=北京 var str=""; Object.keys(obj).forEach((item,index)=>{ str+=`${item}=${obj[item]}&` })
-
includes():检测数组中是否含有某一个值 有返回true,没有返回false
-
indexOf() 检测数组中是否有某一个值 有返回下标,没有返回-1
var arr=[ {id:1001,name:‘alice‘,code:1}, {id:1001,name:‘alice‘,code:2}, {id:1001,name:‘alice‘,code:11}, {id:1001,name:‘alice‘,code:15} ] var statusArr=[0,1,2] arr.filter((item,index)=>{ var flag=false; return statusArr.includes(item.code) }) flat:数组扁平化 ES2019 数组扁平化概念:如何将多维数组转换成一维数组的过程 方法: 1.toString() 2.flat转换 例如: var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] var arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(); // [1, 2, 3, 4, [5, 6]] var arr3 = [1, 2, [3, 4, [5, 6]]]; arr3.flat(2); // [1, 2, 3, 4, 5, 6]
以上是关于es6 数组和字符串的扩展方法的主要内容,如果未能解决你的问题,请参考以下文章
三阶段课程——Day02(ES6简介let和const)(数据类型和数据结构:字符串扩展Symbol数组新增方法对象新增SetMap数组解构对象解构...运算符)