【发布时间】:2019-07-16 16:01:07
【问题描述】:
我想用 1 个条件过滤重复的行
例如:
1) 我有重复的 ID 不同的状态
2)如果状态为“已完成”,我想过滤重复的 ID
var data = [
{ID : 1,
Status : 'Completed'},
{ID : 1,
Status : 'Fail'},
{ID : 2,
Status : 'Fail'},
{ID : 2,
Status : 'Completed'},
{ID : 3,
Status : 'Fail'},
{ID : 4,
Status : 'Completed'},
{ID : 5,
Status : 'Completed'},
]
我想要的结果:
var filter_data = [
{ID : 1,
Status : 'Fail'},
{ID : 2,
Status : 'Fail'},
{ID : 3,
Status : 'Fail'},
{ID : 4,
Status : 'Completed'},
{ID : 5,
Status : 'Completed'},
]
我想尝试 .filter() 任何人有任何参考或示例可以参考以解决我发布的问题?
================================================ ==============================
我还有一个复杂的问题需要解决(更新于 19/7/2019)
var new data = [
{ID : 150042379,
Name : Cake 1234
Status : 'Not Reservable'
Code ID : 302},
{ID : 150042379,
Name : Cake 1234
Status : 'Reservable'
Code ID : 302},
{ID : 150042379,
Name : Bread 1236 Ticket
Status : 'Reservable'
Code ID : 391},
{ID : 150053213,
Name : Bread Basic 8
Status : 'Reservable'
Code ID : 201},
{ID : 150053213,
Name : Bread Basic 6
Status : 'Reservable'
Code ID : 301},
{ID : 150054121,
Name : Bread Basic 16
Status : 'Not Reservable'
Code ID : 202},
{ID : 150054121,
Name : Bread Basic 16
Status : 'Reservable'
Code ID : 202},
{ID : 150057599,
Name : Bread Riche
Status : 'Reservable'
Code ID : 232},
]
基本上我们需要检查 2 个条件,即 ID 和 Code ID
例如1,
ID与Code ID相同,Status为Not Reservable或Reservable,我们将移除状态为Reservable的ID和Code ID
例如2,
ID 和 Code ID 相同,Status 要么 Completed 要么 Reservable,我们将移除状态为 Completed 的 ID 和 Code ID
例如3,
如果2个ID相同,而Code ID不同,我们将两者都显示在列表中
所以我想要的结果
var filter_new_data = [
{ID : 150042379,
Name : Cake 1234
Status : 'Not Reservable'
Code ID : 302},
{ID : 150042379,
Name : Bread 1236 Ticket
Status : 'Reservable'
Code ID : 391},
{ID : 150053213,
Name : Bread Basic 8
Status : 'Reservable'
Code ID : 201},
{ID : 150053213,
Name : Bread Basic 6
Status : 'Reservable'
Code ID : 301},
{ID : 150054121,
Name : Bread Basic 16
Status : 'Not Reservable'
Code ID : 202},
{ID : 150057599,
Name : Bread Riche
Status : 'Reservable'
Code ID : 232},
]
【问题讨论】:
标签: javascript arrays ecmascript-6 filter