(javascript) 本地存储值 -> 我可以更改对象的顺序吗?



我在本地存储中将数据设置为名为"todo"的键。

结构是这样的。

key: todo
value : [{"text":"text1","idx":1, "complete":"Y"},
{"text":"text2","idx":2, "complete":"N"},
{"text":"text4","idx":4, "complete":"Y"}]

我的待办事项列表可以删除并在"完成"和"不完整"状态之间切换。 我想在完成后将待办事项的顺序更改为底部。

例如{"text": "text1", "idx": 1, "complete": "Y"}当此对象的"完整"值更改为"N"时。 ({"text": "text1", "idx": 1, "complete": "N"}(

我想要这个结果。

key: todo
value : [{"text":"text4","idx":4, "complete":"Y"},
{"text":"text2","idx":2, "complete":"N"},
{"text":"text1","idx":1, "complete":"N"}]

已完成的待办事项希望显示在底部。

使用自定义排序函数Array.prototype.sort(function(){})

let tasks = {
key: "todo",
value: [{
"text": "text1",
"idx": 1,
"complete": "Y"
},
{
"text": "text2",
"idx": 2,
"complete": "N"
},
{
"text": "text4",
"idx": 4,
"complete": "Y"
}
]
};
tasks.value.sort((a1, a2) => {
if (a1.complete == "Y") {
if (a2.complete == "Y")
return 0;
else
return -1;
} else {
if (a2.complete == "Y")
return 1;
else
return 0;
}
})
console.log(tasks);

相关内容

最新更新