一、JS對象轉(zhuǎn)數(shù)組方法如下(不考慮for相關(guān)遍歷):
? ? ? ? 1.[...res]
? ? ? ? 2.Array.from(res)
? ? ? ? 3.Object.values(res)
? ? ? ? 4.?Array.prototype.slice.call(res)
let obj = {name:'李四', age:22, gender:'男'} //可枚舉
let obj2 = {'0':'李四', '1':22, '2':'男', length:3} //可枚舉 偽數(shù)組
let set = new Set([1,'2',true])// 可迭代
let map = new Map([[1, {name:'李四', age:22}], [2, [1,2,3]]]) // 可迭代
let arguments = function(){return arguments} //可枚舉 可迭代 偽數(shù)組
二、具體使用
? ? ? ? 1.[...res]
/*
適用于可迭代對象
擴展運算符內(nèi)部調(diào)用的是數(shù)據(jù)結(jié)構(gòu)的 Iterator 接口,因此只要具有 Iterator 接口的對象,都可以使用擴展運算符
*/
console.log([...set]) // 可迭代
console.log([...map]) // 可迭代
console.log([...arguments(1,2,3)]) // 可迭代
console.log([...obj]) // 不可迭代
?文章來源地址http://www.zghlxwxcb.cn/news/detail-676328.html
? ? ? ? 2.?Array.from(res)
/*
適用于偽數(shù)組或可迭代對象
何為偽數(shù)組?如果一個對象的所有鍵名都是正整數(shù)或零,并且有l(wèi)ength屬性,那么這個對象就是偽數(shù)組
*/
console.log(Array.from(obj))
console.log(Array.from(obj2)) // 偽數(shù)組
console.log(Array.from(set)) // 可迭代
console.log(Array.from(map)) // 可迭代
console.log(Array.from(arguments(1,2,3))) // 偽數(shù)組和可迭代
? ? ? ? 3.?Object.values(res)
/*
適用于可枚舉對象
Object.values() 方法用于返回一個給定對象自身的所有可枚舉屬性值的數(shù)組
*/
console.log(Object.values(obj)) // 可枚舉
console.log(Object.values(set))
console.log(Object.values(map))
console.log(Object.values(arguments(1,2,3))) //可枚舉
4.?Array.prototype.slice.call(res)
/*
適用于偽數(shù)組
Array.prototype.slice.call(obj)
可以理解成是讓obj轉(zhuǎn)換成一個數(shù)組對象,讓obj具有slice()方法
*/
console.log(Array.prototype.slice.call(obj))
console.log(Array.prototype.slice.call(obj2)) // 偽數(shù)組
console.log(Array.prototype.slice.call(set))
console.log(Array.prototype.slice.call(map))
console.log(Array.prototype.slice.call(arguments(1,2,3))) // 偽數(shù)組
?文章來源:http://www.zghlxwxcb.cn/news/detail-676328.html
?
到了這里,關(guān)于JS對象轉(zhuǎn)數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!