如何更新阵列顺序?
我有一个属性为“ order”的列表,我想在数组中添加一个对象。
{id: 1, name: 'abba', order: 0},
{id: 5, name: 'Bingo', order: 1}
{id: 2, name: 'James', order: 2},
{id: 3, name: 'Turbo', order: 3},
{id: 4, name: 'Nano', order: 4}
我想在Array中插入一个对象并更新顺序。 该对象需要在ID:2和ID:3之间输入,然后更新顺序。
答案 0 :(得分:1)
您可以找到索引,拼接对象并从给定索引更新具有该索引的所有项目。
var array = [{ id: 1, name: 'abba', order: 0 }, { id: 5, name: 'Bingo', order: 1 }, { id: 2, name: 'James', order: 2 }, { id: 3, name: 'Turbo', order: 3 }, { id: 4, name: 'Nano', order: 4 }],
object = { id: 7, name: 'Giga', order: -1 },
insertBeforeId = 3,
index = array.findIndex(({ id }) => id === insertBeforeId);
array.splice(index, 0, object);
do {
array[index].order = index;
} while (++index < array.length);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }