我有一个简单的字符串id和对象数组,在初始加载时,我将这个Ids
Map到这个对象,并将checked
属性设置为true
const Ids = ['743156', '743157']
[
{
"id": "743156",
"role": "Authorized Redistributor (AR)",
"checked": true,
"checkBoxPatched": true
},
{
"id": "743157",
"role": "System Of Record (SOR)",
"checked": true,
"checkBoxPatched": true
},
{
"id": "743158",
"role": "Authorized Redistributor (AR)",
"checked": false,
"checkBoxPatched": true
},
{
"id": "743159",
"role": "System Of Record (SOR)",
"checked": false,
"checkBoxPatched": true
},
{
"id": "743976",
"role": "Authorized Redistributor (AR)",
"checked": false,
"checkBoxPatched": true
},
]
现在,用户可以选择通过选中复选框使checked
为true来更新,这可能会使其他Ids
checked属性为true。我如何才能获得checked
属性为true的对象,但它不应该是两个checked为true的对象的初始值。因此,例如,我取消勾选ID为743156
的复选框,并选中743158
,我应该得到下面的两个对象,如果用户没有选中任何新的复选框,它应该返回空对象{}而不是初始选中的复选框,id为743156 & 743157
,checked为true
{
"id": "743157",
"role": "System Of Record (SOR)",
"checked": true,
"checkBoxPatched": true
},
{
"id": "743158",
"role": "Authorized Redistributor (AR)",
"checked": true,
"checkBoxPatched": true
}
3条答案
按热度按时间vnjpjtjt1#
这里的
same_ids_lists
函数用来检查被检查的项目是否有任何变化。如果列表数组总是以相同的顺序排列,则可能没有必要对它们进行排序和复制。编辑:将
get_new_checked_if_changed
更改为在未更改时返回false,否则将无法区分未更改和未选中的项。bsxbgnwa2#
要省略前两个分别具有ids数组id的对象并获取检查值
bmp9r5qi3#
你可以简单地在JS中使用**filter()**方法
Array.prototype.filter()