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

如何选取JavaScript对象的全部键值对?寻求可行实现方案

获取对象所有包含键名的键值对解决方案

方法1:使用Object.entries()(最简洁)

Object.entries()会直接返回一个由对象键值对组成的二维数组,每个子数组的第一个元素是键名,第二个是对应值,完全匹配你的需求:

var objects = {
  House: `some stuff`,
  Car: `some stuff`,
  Dog: `some stuff`,
  Boat: `some stuff`
};

// 获取所有键值对(格式:[[key1, value1], [key2, value2], ...])
var allEntries = Object.entries(objects);
var allOutput = Group(allEntries);

方法2:基于你原有代码改造

如果你想沿用自己的map逻辑,可以先通过Object.keys()自动获取对象所有键名,再在map里同时返回键名和对应值(支持对象或数组两种格式):

var objects = {
  House: `some stuff`,
  Car: `some stuff`,
  Dog: `some stuff`,
  Boat: `some stuff`
};

// 自动获取所有键名,无需手动维护数组
var all = Object.keys(objects);
// 返回包含键和值的对象数组(格式:[{key: 'House', value: 'some stuff'}, ...])
var find = all.map(name => ({ key: name, value: objects[name] }));
// 或者返回数组形式(和Object.entries结果一致)
// var find = all.map(name => [name, objects[name]]);
var allOutput = Group(find);

为什么你之前的尝试无效?

你设置all为[]、[""]、["*"]都无法生效,核心原因是对象的属性访问是精确匹配键名的:

  • []会让map遍历空数组,直接返回空结果
  • [""]只会尝试访问objects[""](键名为空字符串的属性),你的对象中不存在该键
  • ["*"]只会访问objects["*"](键名为*的属性),同样不存在,自然拿不到数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:25:15