You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何从对象数组中获取多个指定键的对应值

问题说明

需求是从包含多个独立单层对象的数组中,提取分属不同对象的percentage、length两个指定键的取值并同时打印。
原写法的核心问题是边遍历边输出:当循环走到包含percentage的对象时,还没遍历到后续存length的对象,根本没收集到length的取值,自然无法同时打印两个值。
测试用原始数组如下:

const testArray = [{
  "percentage": "65"
}, {
  "width": "5000",
}, {
  "length": "9000"
}]
实现方法

方法1:遍历收集全目标值后再输出

先定义变量存储两个目标键的取值,遍历完整数组完成值收集后,再执行打印操作:

// 初始化目标值存储变量
let percentageValue = null
let lengthValue = null

testArray.forEach(item => {
  // 当前对象存在目标键就赋值
  if ('percentage' in item) percentageValue = item.percentage
  if ('length' in item) lengthValue = item.length
})

// 所有值收集完成后打印
console.log(`${percentageValue}, ${lengthValue}`)
// 运行输出:65, 9000

方法2:合并对象后直接取值

因为数组内都是无嵌套的平面对象,可以先把所有对象的属性合并到同一个对象上,之后直接读取目标键即可,代码更简洁:

// 合并数组中所有对象的属性到空对象
const mergedData = Object.assign({}, ...testArray)
// 直接读取两个目标键打印
console.log(`${mergedData.percentage}, ${mergedData.length}`)
// 运行输出:65, 9000
注意事项
  • 如果数组中存在多个同名的目标键,上述两种写法都会默认取最后一次遍历到的对应值
  • 如果不确定目标键一定存在,可以在打印前增加非空判断,避免输出undefined

内容的提问来源于stack exchange,提问作者seriously

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 09:33:30