数组和字符串的扩展方法:
程序员文章站
2022-03-08 23:36:46
...
数组和字符串的扩展方法:
字符串:主要新增了模板字符串
数组新增方法:
Array.from:将类数组或迭代对象转换成数组
类数组和数组
类数组和数组相同点:
1.可以通过下标去访问
2.可以通过.length来获取类数组的元素个数
类数组和数组的区别:
类数组不能使用数组的各种api方法,数组没有问题
例如:
<script>
function test(){
//arguments表示接收传递值的类数组
console.log('通过arguments',arguments.length) //length代表长度,[0]代表下标是几
}
test(6,8,9,66,88,99)
</script>
类数组转成数组
如何将一个类数组转换成数组?
1.第一种方法:通过ES6的Array.from(类数组)来转换
2.第.二种方法:通过Array.prototype.slice.call(类数组);
3.第三种方法: …来转换类数组
例如:
<script>
//第一种
function test(){
//通过Arry.from将类数组转成数组,es6方法
var arr = Array.from(arguments);
arr.push("6666")
console.log('通过arguments',arr)
}
test(6,8);
//第二种封装
function test(){
//不用Arry.from,如何将类数组转成数组,es3
var arr = lkArray(arguments)
arr.push("6666-测试")
console.log('通过arguments',arr)
}
function lkArray(target){
return Array.prototype.slice.call(target)
}
test(6,8);
</script>
类数组通常有哪些呢:arguments,获取的DOM组成的类数组
数组方法:
· copywithin:方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度
例如:
const array1 = ['a', 'b', 'c', 'd', 'e'];
console.log(array1.copyWithin(0, 3, 4));
· find():返回匹配的数组元素,没有匹配的返回undefined
例如:
var arr = [5,4,3,6,8,9]
var num = arr.find((item,index)=>{
return item===8
})
console.log(num)
·findIndex():返回匹配的数组元素下标,没有匹配的就返回-1
例如:
var arr = [5,4,3,6,8,9]
var num = arr.findIndex((item,index)=>{
return item===9
})
console.log(num)
·fill(value,start,end) 填充数据
例如:
var arr = [5,4,3,6,8,9]
arr.fill(88,3)
console.log(arr)
·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
·flat:数组扁平化 ES2019
数组扁平化概念:如何将多维数组转换成一维数组的过程
方法:
1.toString()
2.flat转换