如何从含动态属性对象的数组中提取属性值数组?
实现思路与代码示例
这里提供几种JavaScript的实现方式,针对每个子对象仅含单个属性的场景:
方法一:
Array.map()结合Object.values()
利用map遍历原数组,每个对象通过Object.values()提取所有值组成的数组,由于每个对象只有一个属性,直接取数组第一个元素即可:const originalArr = [{a:23},{b:23},{r:2323},{e:99}]; const newArr = originalArr.map(obj => Object.values(obj)[0]); console.log(newArr); // 输出: [23,23,2323,99]方法二:
Array.map()结合Object.keys()
先通过Object.keys()获取对象的属性名,再通过属性名取值:const originalArr = [{a:23},{b:23},{r:2323},{e:99}]; const newArr = originalArr.map(obj => obj[Object.keys(obj)[0]]); console.log(newArr); // 输出: [23,23,2323,99]方法三:传统for循环(兼容旧环境)
如果需要兼容不支持ES6语法的环境,可以用两层循环实现:const originalArr = [{a:23},{b:23},{r:2323},{e:99}]; const newArr = []; for (let i = 0; i < originalArr.length; i++) { const currentObj = originalArr[i]; for (const key in currentObj) { if (currentObj.hasOwnProperty(key)) { newArr.push(currentObj[key]); break; // 每个对象仅一个属性,取到值后跳出内层循环 } } } console.log(newArr); // 输出: [23,23,2323,99]
内容的提问来源于stack exchange,提问作者upendradhamaladev
相关产品推荐
相关产品推荐

