如何从object中抽取某几个值,然后转换成数组

可以使用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); // [1, 3]
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') {
    // 可能是对象,但也要检查它是否为null
}
使用 instanceof 运算符
if (data instanceof Object && !Array.isArray(data)) {
    // 是对象,但不是数组 而且 需要确保原型链没有被篡改,否则可能得到错误的结果
}
使用 Object.prototype.toString.call() 方法
 if (Object.prototype.toString.call(data) === '[object Object]') {
    // 确定是对象
}
使用 typeofnull 检查结合 !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.');
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值