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

如何通过传入字符串变量获取JavaScript对象的对应属性值

解决方案

核心问题梳理

你代码的写法存在两个错误:

  1. selectedItems是数组结构,你需要先拿到数组内的目标对象元素,示例中目标对象在数组的第0位,要先取selectedItems[0]
  2. 点语法不支持传入变量作为属性名,要通过变量动态获取对象属性,必须使用方括号语法

正确代码实现

var c = "Rice";
// 注:你示例中的{[1]}属于不合法JS语法,实际使用时替换为合法的对象结构即可
var selectedItems = [{
  "Rice": {[1]}
}];

// 先取数组第0项,再用变量c作为键取值
console.log(selectedItems[0][c]);
// 输出结果符合预期:{[1]}

扩展适配(数组存在多个对象的场景)

如果你的selectedItems数组内有多个对象,需要遍历匹配对应键名,可以用下面的通用方法:

function getItemByKey (itemArray, targetKey) {
  for (const item of itemArray) {
    if (Object.prototype.hasOwnProperty.call(item, targetKey)) {
      return item[targetKey]
    }
  }
  return undefined // 未匹配到对应键时返回
}

// 调用示例
console.log(getItemByKey(selectedItems, c))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:11