1.Array.isArray();
判断给入的内容是不是数组
2.Array.from()
Array.from()可以将迭代器对象转换为数组 , ES5以上就可以使用
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
var divs=document.getElementsByClassName("div1");
var arr=Array.from(divs);
console.log(arr);
//---输出 [div.div1, div.div1, div.div1, div.div1, div.div1, div.div1]
function fn(){
console.log(Array.from(arguments));
console.log(arguments)
}
fn(1,2,3,4,5,6);
//---也能将arguments转换为数组,因为他也是迭代器类型
迭代器类型 Symbol(Symbol.iterator)的对象
例:HTMLCollection
argumehts
NodeList
Set
Map
3.Array.prototype
Array.prototype也可以转换数组
var divs=document.getElementsByClassName("div1");
var arr=Array.prototype.slice.call(divs);
var arr=Array.prototype.concat.apply([],divs);
console.log(arr)
练习----- 扁平化数组(面试题)*****
var arr=[[1,2,3],[4,5,6],7,8,9,[[11,12],[13,14],15]];
function flat(arr,target){
if(!target){
target=[];
}
for(var i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
flat(arr[i],target)
}else{
target.push(arr[i]);
}
}
return target;
}
var arr1=flat(arr);
console.log(arr1);