如何从JavaScript数组的对象中获取特定键对应的值
解决用Array.map提取学生余额的问题
你的代码里存在两处需要修正的问题:
- 类型判断错误:
typeof(student) === Object不符合语法逻辑,typeof运算符返回的是字符串类型的结果,正确写法应为typeof student === 'object';另外要注意,typeof null也会返回'object',如果数组中可能存在null元素,需要额外排除。 - 无返回值的情况:当元素不符合判断条件时,当前函数没有返回值,会导致结果数组中出现
undefined。
基础简化写法
如果能确定students数组内全是有效的学生对象(不存在非对象、null元素),可以直接简化为一行代码:
const balanceInfo = students.map(student => student.balance); console.log(balanceInfo);
带边界判断的稳健写法
如果需要考虑数组中可能存在非对象、null,或者部分学生对象没有balance属性的情况,可以添加判断逻辑,避免出现异常值:
const balanceInfo = students.map(student => { // 排除null和非对象类型的元素 if (student && typeof student === 'object') { // 若balance属性不存在,返回默认值0(可根据需求调整) return student.balance ?? 0; } // 不符合条件的元素返回统一默认值 return 0; }); console.log(balanceInfo);
- 第一种写法适合数据结构稳定的场景,用箭头函数直接返回目标属性值,简洁高效。
- 第二种写法更健壮,覆盖了多种异常情况,确保结果数组的完整性。
内容的提问来源于stack exchange,提问作者Abdulhakeem Adekunle
相关产品推荐
相关产品推荐

