伪数组转化真数组_ES6 数组方法

nodelist伪数组转数组,让其拥有数组方法

扩展运算符 ...

let arr = document.querySelectorAll('ul li');
// 当获取dom元素list的时候,所得到的是伪数组,不具备数组方法,怎么去转化成数组呢
// es5之前的写法是利用循环或者slice.call来转化
let newArr = [].slice.call(arr);
//demo1 es6的扩展运算符写法
let newArr = [...arr]; // 此时arr就转化成newArr,变成数组。

Array.from()

作用:把伪数组转化成数组(arguments,或dom元素集合)

let arr = document.querySelectorAll('ul li');
let newArr = Array.from(arr); // 伪数组转化成数组
// string也可以转化成ARRAY,es5之前string变成数组是要用到split切割。
let name = 'hahaha';
let nameArr = name.split(''); //arr
//es6 Array.from写法
let newNameArr = Array.from(name); //arr

个人猜测,只要存在length,就可以使用Array.from()让其转化成数组

let json1 = {
    0:'a',
    1:'b',
    2:'c',
    3:'d'
}
let arr = Array.from(json1); // [] 得到的空数组,因为没有length
let json2 = {
    0:'a',
    1:'b',
    2:'c',
    3:'d',
    length:4
}
let arr = Array.from(json2); // ['a','b','c','d']

Array.of(): 把一组值转化成数组

let arr = Array.of('a','b','c');
console.log(arr); // ['a','b','c']

Array.find(): 找到第一个符合条件的元素,并返回

let arr3 = [1,2,3,45,5,6,7];
let newArr3 = arr3.find((val, index, arr) => { // 类似循环 val当前值 index 当前下标 arr当前整个数组
    return val>6;
})
console.log(newArr3); // 45,是第一个符合条件的 元素,所以返回
// 如果没找到符合条件的元素,返回undefined

bde204372c0529d4f496c2c182073c8a.png

Array.findIndex(): 返回的是符合条件元素的下标位置,和find一样的使用方法,如果没找到符合的元素返回-1.找到则返回符合元素的对应下标。

Array.fill(填充元素,开始位置,结束位置) 填充数组

let arr5 = new Array(10);
arr5.fill('默认值',1,4);
console.log(arr5);

8432b6aa78a46ba1e28339af9cb5a9d5.png

ES2016新增

Array.includes() // 类似于Array.indexOf() 区别在于,includes返回true false ,indexOf返回下标或-1

let arr6  = [1,2,3,4];
let newArr6 = arr6. includes(2);
console.log(newArr6);

58606037dd415a721031b266b9e3d3f3.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值