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

如何复制含10+键值对的JSON对象并仅保留前5组键值对?

实现JSON对象复制并保留前5组键值对的方案

当然可以用循环来实现,这思路很直观!我给你整理几个可行方案,包括你考虑的循环方式,还有更简洁的现代JavaScript写法:

1. 传统for循环实现(符合你的思路)

这是最直观的方式,手动创建空对象,遍历原对象的前5个键并复制键值对:

var object1 = { "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1, "6f": 2, "7g": 1, "8h": 2, "9i": 1, "10j": 2 };
var object2 = {};
// 获取原对象的所有键组成的数组
const keys = Object.keys(object1);

// 循环前5个键,复制对应键值对
for (let i = 0; i < 5; i++) {
  const key = keys[i];
  object2[key] = object1[key];
}

console.log(object2);
// 输出:{ "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1 }

注意:现代浏览器和Node.js中,对于字符串形式的有序键(比如你的示例里的"1a"、"2b"这类),对象会保留定义时的顺序,所以这个方法能准确获取前5组。

2. 现代简洁写法(ES2019+支持)

利用Object.entries、slice和Object.fromEntries组合,一行代码就能完成,可读性拉满:

var object1 = { "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1, "6f": 2, "7g": 1, "8h": 2, "9i": 1, "10j": 2 };
// 把对象转成键值对数组 → 截取前5组 → 转回对象
var object2 = Object.fromEntries(Object.entries(object1).slice(0, 5));

console.log(object2);

3. forEach遍历+计数实现

如果你更喜欢forEach的写法,也可以用计数控制只复制前5组:

var object1 = { "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1, "6f": 2, "7g": 1, "8h": 2, "9i": 1, "10j": 2 };
var object2 = {};
let count = 0;

Object.keys(object1).forEach(key => {
  if (count < 5) {
    object2[key] = object1[key];
    count++;
  }
});

console.log(object2);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:21:31