可以使用Object.entries()
, Array.prototype.filter()
和Array.prototype.map()
或者解构赋值
的方式从对象中抽取某些值并转换为数组
示例
1:使用 Object.entries(), filter() 和 map()
const obj = {
a : 1 ,
b : 2 ,
c : 3 ,
d : 4
} ;
const keysToExtract = [ 'a' , 'c' ] ;
const extractedValues = Object. entries ( obj)
. filter ( ( [ key, value] ) => keysToExtract. includes ( key) )
. map ( ( [ key, value] ) => value) ;
console. log ( extractedValues) ;
2:使用解构赋值
const obj = {
a : 1 ,
b : 2 ,
c : 3 ,
d : 4
} ;
const { a, c } = obj;
const extractedValues = [ a, c] ;
console. log ( extractedValues) ;
相比如果数组很长或不确定
,使用第一种方法
。第二种方法适用于已知要提取的确切属性
的情况
如何判断数据是个对象
使用 typeof
运算符
if ( typeof data === 'object' ) {
}
使用 instanceof
运算符
if ( data instanceof Object && ! Array. isArray ( data) ) {
}
使用 Object.prototype.toString.call()
方法
if ( Object . prototype. toString . call ( data) === '[object Object]' ) {
}
使用 typeof
和 null
检查结合 !Array.isArray()
if ( typeof data === 'object' && data !== null && ! Array. isArray ( data) ) {
}
使用 isPrototypeOf 方法
function isPlainObject ( data ) {
return Object . prototype. toString . call ( data) === '[object Object]' ;
}
const myData = { } ;
if ( isPlainObject ( myData) ) {
console. log ( 'myData is an object.' ) ;
}