我有一个包含 13k 对象的 JSON 文件。我只需要从中获取具有 events
{ name: "Submitted"}
属性的对象。 events 是包含多个名称属性的对象数组。这是它的外观的屏幕截图:
{
"_id": "03c319a5-86d4-4ce6-ba19-1a50584cecb4",
"_rev": "21-7cb67ebb46c485ff443995fc27bdd950",
"doctype": "application",
"events": [{
"name": "change",
"time": 1532547503182
},
{
"name": "change",
"time": 1532547503182
},
{
"name": "submitted",
"time": 1532547503182
},
{
"name": "edited",
"time": 1532547503182
}
]
}
这就是我获取 json 文件中所有对象的方法:
$.getJSON("export.json", function(data) {
var data = [];
var arrays = data;
var i;
for (i = 0; i < arrays.length; i++) {
console.log(arrays[i]);
}
});
现在我需要将所有具有
events[name:submitted]
的对象推入 arrays[i]
到 doc[]
中。如何过滤结果?
您可以通过
filter
方法过滤对象数组。
$.getJSON("export.json", function(data) {
var data = [];
var arrays = data;
var newArray = arrays.filter(function (el) {
return el.name == 'Submitted';
});
console.log(newArray);
});
您也可以使用
ES6 arrow function
在一行中完成
var newArray = arrays.filter(el => el.name === 'Submitted')
您可以使用
filter()
,检查 events
数组中的每个元素,看看 name
是否等于 submitted
:
const object = {
"_id": "03c319a5-86d4-4ce6-ba19-1a50584cecb4",
"_rev": "21-7cb67ebb46c485ff443995fc27bdd950",
"doctype": "application",
"events": [{
"name": "change",
"time": 1532547503182
},
{
"name": "change",
"time": 1532547503182
},
{
"name": "submitted",
"time": 1532547503182
},
{
"name": "edited",
"time": 1532547503182
}
]
}
const filtered = object.events.filter(obj => obj.name === 'submitted')
console.log(filtered)