我怎样才能对一个精巧的数组存储进行排序?

How could I sort a svelte array-store?

我正在做一个带商店的 Todo 应用程序。 现在一切都很好,但我想对商店中的商品进行分类,或者展示已订购的商品。 商店是一个数组,商店中的所有项目都是一个带有键的对象:文本、ID、编辑、行、复选框。 所以 "checkboxed" 是一个布尔值,我希望所有 "checkboxed:true" 对象都在数组中排在第一位。 我该怎么做? 或者可能 : 一般情况下,我如何对 svelte-store-array 中的项目进行排序? 谢谢!!!!

link to the app

您可以创建一个 derived 商店,例如:

const sorted = derived(todos_, todos => sortBy(todos, 'checkboxed'))

Derives a store from one or more other stores. Whenever those dependencies change, the callback runs.

(Example)

另一个解决方案: 将其添加到 TodoLIst 组件:

$:sortedTodos=$customTodos
    .sort((a,b)=>b.checkboxed-a.checkboxed)
    .sort((a,b)=>a.line-b.line)

并在 "each" 循环中使用 sortedTodos 变量。