举个栗子🌰:
var obj = {
0: '王源',
1: '易烊千玺',
2: '王俊凯',
length: 3
};
我的这个伪数组,需要怎样才能转换成真数组呢???
其实是可以用到数组里面的slice属性,
slice属性有什么用处呢?提取字符串的某个部分,并且以新的字符串返回被提取的部分
slice的语法:stringObject.slice(start,end)
但是obj是伪数组呀?那咋办????
那就只能借了。那需要借属性的话,我们会联想到什么?
bingo~ 就是关于“
call,bind,apply
”当中我们随意选择一个即可
那如果要向数组借属性的话,我们要怎么做呢?
可不可以联想到我们原型链里面的东西?
我们可以直接向 我们的
原型对象 Array.prototype
借一个属性
也可以向我们的实例对象 [ ]
简写的方式借一个属性
两种都可以,那要选择的话,肯定是选择一个相对简单的,那就是实例对象的方式
var obj = {
0: '王源',
1: '易烊千玺',
2: '王俊凯',
length: 3
};
//返回的这个arr就是个新的数组(真数组)
var arr = [].slice.apply(obj)
console.log(arr);