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

如何用原生JavaScript或jQuery获取对象指定键数组对应的取值

这问题我平时写代码也常碰到,给你分享两种实用的实现方式,原生JS和jQuery都能轻松达成需求:

原生JavaScript实现

最直观且高效的方式就是用数组的map()方法,它会遍历你的键数组,逐个从对象中取出对应的值:

const data = { a: 3, b: 7, c: 94, d: 854 };
const keys = ["a", "d"];
// 遍历keys数组,每个key对应取data里的value
const result = keys.map(key => data[key]);
console.log(result); // 输出:[3, 854]

如果担心某些键可能不存在于data对象中,还可以加个默认值处理,避免出现undefined:

const result = keys.map(key => data[key] ?? "该键不存在");

要是你需要过滤掉那些不存在的键(只保留存在的键对应的值),可以用reduce()方法:

const result = keys.reduce((accumulator, key) => {
  if (key in data) {
    accumulator.push(data[key]);
  }
  return accumulator;
}, []);
jQuery实现

如果你项目里已经引入了jQuery,也可以用它的$.map()方法来实现,逻辑和原生map类似:

const data = { a: 3, b: 7, c: 94, d: 854 };
const keys = ["a", "d"];
const result = $.map(keys, function(key) {
  return data[key];
});
console.log(result); // 输出:[3, 854]

同样,要处理不存在的键的话,可以加个判断:

const result = $.map(keys, function(key) {
  return data.hasOwnProperty(key) ? data[key] : null;
});

顺便提一句,你一开始想的Object.values(data)[keys]为啥不行?因为Object.values(data)返回的是一个值数组,数组的索引是数字类型的,而你的keys是字符串数组,直接用它当索引会被转成字符串(比如["a","d"]会变成"a,d"),数组里根本没有这个“键”,所以自然得不到想要的结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:48:10