首页 > 解决方案 > 如何在 JavaScript 中为每个对象插入序列号

问题描述

我正在尝试制作一个 housie/bingo 游戏的 JavaScript 游戏。我使用了库 npm tambola-generator,它返回自动生成的票证。

服务器端进程生成一个类似于这个的数组......

[{
  "_entries": [[0,17,0,0,41,53,0,78,86], [4,0,0,35,0,58,67,80,0]/*, [ ... ] */],
}, {
  "_entries": [[0,16,23,0,41,51,0,0,88], [2,20,0,31,43,56,0,0,0]/*, [ ... ] */],
}, {
  "_entries": [[0,0,23,33,0,51,0,73,87], [1,0,0,35,42,58,68,0,0]/*, [ ... ] */],
}, {
  // ... more items like that ...
}]

我希望每张票都有一个序列号,该序列号应该等于票项的数组索引,但以基数开头1而不是0.

如何包含这样的票号以便我可以管理玩家的票?

我只是一个初学者,我无法解决它。上述示例代码的目标结构应如下所示...

[{
  "ticketNum": 1,
  "_entries": [[0,17,0,0,41,53,0,78,86], [4,0,0,35,0,58,67,80,0]/*, [ ... ] */],
}, {
  "ticketNum": 2,
  "_entries": [[0,16,23,0,41,51,0,0,88], [2,20,0,31,43,56,0,0,0]/*, [ ... ] */],
}, {
  "ticketNum": 3,
  "_entries": [[0,0,23,33,0,51,0,73,87], [1,0,0,35,42,58,68,0,0]/*, [ ... ] */],
}, {
  // ... more items like that ...
}]

标签: javascript

解决方案


Array.prototype.map用于完成此任务。

const entries = [{
  "_entries": [
    [0, 17, 0, 0, 41, 53, 0, 78, 86],
    [4, 0, 0, 35, 0, 58, 67, 80, 0]
  ],
}, {
  "_entries": [
    [0, 16, 23, 0, 41, 51, 0, 0, 88],
    [2, 20, 0, 31, 43, 56, 0, 0, 0]
  ],
}, {
  "_entries": [
    [0, 0, 23, 33, 0, 51, 0, 73, 87],
    [1, 0, 0, 35, 42, 58, 68, 0, 0]
  ],
}];

const tcktEntries = entries.map((entry, index) => {
  return {
    ticketNum: index + 1,
    ...entry
  };
});

console.log({
  tcktEntries
});
.as-console-wrapper {
  min-height: 100%!important;
  top: 0;
}


推荐阅读