/*
* @Author: [jsh]
* @Date: 2021-09-26 11:23:52
* @LastEditors: [jsh]
* @LastEditTime: 2021-09-26 12:46:43
* @Description:
*/
// let obj={name:'zs',age:12} //非类数组对象,所以不知道如何分离
let obj='hello'
let arr1=Array.from(obj)
console.log(arr1); //[ 'h', 'e', 'l', 'l', 'o' ]
// console.log(Array.from(obj));
//类数组对象
let arrObj={
0:'zs',
1:'ls',
2:'ww',
length:3
}
let arr2=Array.from(arrObj)
console.log(arr2); // [ 'zs', 'ls', 'ww' ]
//Array.of() 创建数组实例,实参就是数组的元素
let arr3=Array.of(1,2,3,4,5,6)
console.log(arr3); //[ 1, 2, 3, 4, 5, 6 ]
//返回满足条件的第一个元素,参数为函数
let result=arr3.find((item,index)=>{
return item > 2 //有的话返回第一个
})
console.log(result); //3
//Array.prototype.findIndex() 返回满足条件的第一个元素的索引,参数为函数
let result1=arr3.findIndex((item,index)=>{
return item > 2
})
console.log(result1);//2
//判断当前数组中是否包含某个元素,参数为元素,返回true/false
let res=arr3.includes(8)
console.log(res);//false
//将当前元素都替换成这个7元素 填充数组(所有元素填充),修改数组原值
// let res1=arr3.fill(7)
// console.log(res1);//[ 7, 7, 7, 7, 7, 7 ]
//API拓展
let keys =arr3.keys()
let values=arr3.values()
let entries=arr3.entries()
console.log(keys,values,entries);//Iterator对象 Object [Array Iterator] {} Object [Array Iterator] {} Object [Array Iterator] {}
console.log(Array.from(keys)); //索引的迭代器对象 [ 0, 1, 2, 3, 4, 5 ]
console.log(Array.from(values)); //元素的迭代器对象 [ 1, 2, 3, 4, 5, 6 ]
console.log(Array.from(entries));//键值对的迭代器对象 [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 4, 5 ], [ 5, 6 ] ]
Conclude : 总结
数组
拓展运算符
...用在=左边,聚合的作用(对象、数组的解构)
...用在=右边,展开(剥离)的作用
let obj1 = {
name: '张三'
}
let obj2 = {
...obj1,
age: 12
}
API拓展
Array.from() 将其他类型数据转成数组
Array.of() 创建数组实例,实参就是数组的元素
Array.prototype.find() 返回满足条件的第一个元素,参数为函数
Array.prototype.findIndex() 返回满足条件的第一个元素的索引,参数为函数
Array.prototype.includes() 判断当前数组中是否包含某个元素,参数为元素,返回true/false
Array.prototype.fill() 填充数组(所有元素填充),修改数组原值
Array.prototype.keys() 索引的迭代器对象
Array.prototype.values() 元素的迭代器对象
Array.prototype.entries() 键值对的迭代器对象