猿问

克隆一个对象 JSON 但直到它的第 5 个键值

我有一个包含 10 个以上键值的 JSON,我需要创建它的副本,但将其限制到第 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 = {

  "1a": 1,

  "2b": 2,

  "3c": 1,

  "4d": 2,

  "5e": 1,

};

我正在考虑使用 for 到 10th 为每个键创建一个新的一个键。有什么想法吗?


牛魔王的故事
浏览 176回答 2
2回答

慕仙森

您可以对条目数组进行切片并使用Object.fromEntries.var object = { "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1, "6f": 2, "7g": 1, "8h": 2, "9i": 1, "10j": 2 },    result = Object.fromEntries(Object.entries(object).slice(0, 5));    console.log(result);与 相同Object.assign。var object = { "1a": 1, "2b": 2, "3c": 1, "4d": 2, "5e": 1, "6f": 2, "7g": 1, "8h": 2, "9i": 1, "10j": 2 },    result = Object.assign({}, ...Object        .entries(object)        .slice(0, 5)        .map(([k, v]) => ({ [k]: v }))    );    console.log(result);

12345678_0001

你可以很容易地使用这样的东西,通过使用reduce方法,这是一个相对标准的实现。这个解决方案的优点在于它非常简单,即使是初学者也能理解它。var object1 = {&nbsp; "1a": 1,&nbsp; "2b": 2,&nbsp; "3c": 1,&nbsp; "4d": 2,&nbsp; "5e": 1,&nbsp; "6f": 2,&nbsp; "7g": 1,&nbsp; "8h": 2,&nbsp; "9i": 1,&nbsp; "10j": 2};var object2 = Object.keys(object1).reduce((o, k, i) => {&nbsp; i < 5 ? o[k] = object1[k] : null;&nbsp; return o;}, {});console.log(object2);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答