如何更新数组列表排序?

时间:2019-05-27 15:35:39

标签: javascript arrays sorting

如何更新阵列顺序?

我有一个属性为“ 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之间输入,然后更新顺序。

1 个答案:

答案 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; }