kor*_*ota 0 javascript arrays children filter
我有一个像这样的对象(客户端)数组:
"{"client_id":"AAA1","contracts":[{"contract_id":"CON1-AAA1","revisions":[{"date":"2018-07-30","status":"First Sign"}]}]}"
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地按 client_id 过滤:
var query = clients.filter(x => x.client_id == "AAA1");
Run Code Online (Sandbox Code Playgroud)
但是,我想按修订日期或状态进行过滤,我进行了以下测试,但出现错误“未捕获的类型错误:无法读取未定义的属性‘状态’”
var query = clients.filter(x => x.contracts.revisions.status == "First Sign");
Run Code Online (Sandbox Code Playgroud)
是否有可能这样做或我是妄想?:)
您可以通过使用一个Array#filter和两个的组合来实现Array#some:
const clients = [{
"client_id": "AAA1",
"contracts": [{
"contract_id": "CON1-AAA1",
"revisions": [{
"date": "2018-07-30",
"status": "First Sign"
}]
}]
}, {
"client_id": "AAA2",
"contracts": [{
"contract_id": "CON1-AAA2",
"revisions": [{
"date": "2018-08-30",
"status": "Second Sign"
}]
}]
}];
let result = clients.filter(cl => cl.contracts.some(c => c.revisions.some(r => r.status == 'First Sign')));
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5096 次 |
| 最近记录: |