【发布时间】:2020-05-30 12:48:56
【问题描述】:
我有一个关于排序字典对象的问题是 JS es6。我正在尝试过滤数组,但仍将数组的结构保留在每个月的对象中。这是数据的模拟:
"soldListings": {
"Jan - 2020": [
{
"id": 159,
"user_id": 1,
"type_id": 1,
},
{
"id": 173,
"user_id": 1,
"type_id": 1,
},
{
"id": 563,
"user_id": 1,
"type_id": 2,
}
],
"Dec - 2019": [
{
"id": 183,
"user_id": 1,
"type_id": 1,
}
],
"Oct - 2019": [
{
"id": 176,
"user_id": 1,
"type_id": 1,
}
]
}
如果它是一个平面对象数组,我会这样做:
typeFilter = data.filter((listing) => {
if(listing.type_id){
return listing.type_id == this.state.soldListTypeFilter ;
}
});
更新
我需要输出与输入的格式相同。例如,如果我通过 type_id = 2 过滤对象,它将返回:
"soldListings": {
"Jan - 2020": [
{
"id": 563,
"user_id": 1,
"type_id": 2,
}
],
"Dec - 2019": [
],
"Oct - 2019": [
]
}
【问题讨论】:
-
排序后的预期输出是什么?
-
您是否要对数据进行排序或过滤?您希望生成的数据是什么样的?请记住,对象/字典没有顺序,不能“排序”。
-
This 可能会有所帮助。
-
欢迎使用 Javascript,我们将字典称为“对象”,它是为 JavaScriptObjectNotation 对象排序的。
-
@VirxEC JSON 对象不是一个东西。 JavaScript 对象是对象,JSON 是 JavaScript 对象的字符串表示。
标签: javascript arrays sorting ecmascript-6 filtering