如何在可以根据编辑(删除或添加)进行编辑的数组中拥有一个数字

How to have a number in an array that can edit according to edits(removal or adding)

抱歉,标题解释得不好(真的不知道用什么其他方式来表达)。我有一个需要增量值的数组:

const array = [
  {
    name: 'charmander',
    iv: '13;10;25;24;4;21',
    lvl: 23,
    nature: 'Rash',
    holding: '',
    mega: false
  },
  {
    name: 'bulbasaur',
    iv: '19;18;13;20;27;28',
    lvl: 17,
    nature: 'Brave',
    holding: '',
    mega: false
  }
];

我想将数组映射到每个数组中都有一个数字的东西,例如:

const array = [
  {
    name: 'charmander',
    iv: '13;10;25;24;4;21',
    lvl: 23,
    nature: 'Rash',
    holding: '',
    mega: false,
    number: 1,
  }];

尽管如此,我无法在向数组中添加内容时插入数字,因为它们可能会被删除或删除,从而留下数字空缺。有什么有效的方法吗?

// All your array initialization here

// using simple cycle
for (let i in array) {
  array[i].number = i;
}

// using foreach
array.forEach((p, i) => { p.number = i; })

// using map
array = array.map((p, i) => { p.number = i; return p; });

// dynamic association (if you later need to change the order)
// this will automatically change if you sort your array or remove
// some elements
array.forEach(p => {
  Object.defineProperty(p, 'number', { get: () => array.indexOf(p) })
})