ES 之07.数组结构
索引
数组元素的值获取
const numbers=["one",'two','three','four'];
const [x,,z]=numbers
const [a,b]=numbers;
const [first,...others]=numbers;
const fruits=["apple"]
const [fruit1,fruit2='banana']=fruits;
let aa=1
let bb=2;
[aa,bb]=[bb,aa]
数组扩展方法
Array.from(object, mapFunction, thisValue)
from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组
如果对象是数组返回 true,否则返回 false
将伪数组对象或可遍历对象转换为真数组
如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为“类似数组的对象”(array-like object),即为伪数组
伪数组
典型的“类似数组的对象”是函数的arguments对象,以及大多数 DOM 元素集,还有字符串
| 参数 | 描述 |
|---|---|
| object | 必需,要转换为数组的对象 |
| mapFunction | 可选,数组中每个元素要调用的函数 |
| thisValue | 可选,映射函数(mapFunction)中的 this 对象 |
const lis=document.querySelectorAll('li');//NodeList
// const lisArr=Array.from(lis)
// const html=lisArr.map(li=>li.textContent);
//或者
const html=Array.from(lis,li=>li.textContent)
//字符串转数组
const website='php.net'
const websiteArr=Array.from(website) //Array
Array.of(v1, v2, v3) : 将一系列值转换成数组
当调用 new Array( )构造器时,根据传入参数的类型与数量的不同,实际上会导致一些不同的结果, 例如:
let items = new Array(2) ;
console.log(items.length,items[0],items[1]) ; // 2 undefined undefined
let items1 = new Array(1, 2) ;
console.log(items1.length,items1[0],items1[1]) ; // 2 1 2
Array.of( )方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型:
let items = Array.of(2) ;
console.log(items.length,items[0],items[1]) ; // 1 2 undefined
let items1 = Array.of(1, 2) ;
console.log(items1.length,items1[0],items1[1]) ; // 2 1 2
find(),findIndex(),some(),every()
const inventory=[
{name:'apples',quantity:2},
{name:'bananas',quantity:0},
{name:'cherries',quantity:5}
];
const bananas=inventory.find(fruit=>{
if(fruit.name==='bananas'){
return true;
}
return false;
})
//{name: "bananas", quantity: 0} object
const bananasIndex=inventory.findIndex(fruit=>fruit.name==='bananas');//1
const some=inventory.some(fruit=>fruit.quantity>0);//true
const every=inventory.every(fruit=>fruit.quantity>0);//false

浙公网安备 33010602011771号