如何将JavaScript对象转换为对象数组?
如何将JavaScript对象转换为对象数组?
输入对象
{ AF: 'Afghanistan', AX: 'Åland Islands', AL: 'Albania', DZ: 'Algeria' }
实现方法
方法一:使用Object.entries() + map()(现代JavaScript)
这是最简洁的实现方式,适配ES6及以上环境:
const originalObj = { AF: 'Afghanistan', AX: 'Åland Islands', AL: 'Albania', DZ: 'Algeria' }; const resultArray = Object.entries(originalObj).map(([value, label]) => ({ value, label }));
Object.entries()会把原对象转换为[键, 值]结构的二维数组,再通过map()遍历每个子数组,解构出键和值后生成目标格式的对象。
方法二:使用for...in循环(兼容旧环境)
如果需要支持不兼容ES6的旧运行环境,可以用传统循环实现:
const originalObj = { AF: 'Afghanistan', AX: 'Åland Islands', AL: 'Albania', DZ: 'Algeria' }; const resultArray = []; for (const key in originalObj) { // 只遍历对象自身的属性,排除继承的原型属性 if (originalObj.hasOwnProperty(key)) { resultArray.push({ value: key, label: originalObj[key] }); } }
输出结果
[ {value: 'AF', label: 'Afghanistan'}, {value: 'AX', label: 'Åland Islands'}, {value: 'AL', label: 'Albania'}, {value: 'DZ', label: 'Algeria'} ]
内容的提问来源于stack exchange,提问作者angie
相关产品推荐
相关产品推荐

