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

在Svelte/JS中能否将对象键名作为参数传递使用?

问题解决方法

你当前的写法无法读取变量对应的属性,是因为点操作符访问对象属性时,后续的标识会被视为固定的属性名字面量,你写data[i].key时,实际是在尝试读取每个对象上名为key的属性,而非key变量存储的属性名。

修正方案

使用方括号属性访问语法即可实现动态属性读取,将data[i].key替换为data[i][key],方括号内可以传入任意变量或表达式,运行时会自动将运算结果作为属性名读取对应值。

修正后的完整代码如下:

export let data = [];
export let key;
function cleanUp(data, key) {
  // 先初始化结果数组,原代码中缺少这一步会报错
  const newArray = [];
  for (let i = 0; i < data.length; i++) {
    let d = data[i][key];
    newArray.push(d);
  }
  return newArray;
}

可选优化写法

你可以直接用数组内置的map方法简化逻辑,不需要手动编写循环:

function cleanUp(data, key) {
  return data.map(item => item[key])
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:36:02