如何在可以根据编辑(删除或添加)进行编辑的数组中拥有一个数字
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) })
})
抱歉,标题解释得不好(真的不知道用什么其他方式来表达)。我有一个需要增量值的数组:
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) })
})