Javascript Ajax如何通过find方法在对象数组中查找内容
在后端PHP中,我在循环中定义了以下内容:Javascript Ajax如何通过find方法在对象数组中查找内容,javascript,php,ajax,Javascript,Php,Ajax,在后端PHP中,我在循环中定义了以下内容: foreach ( $data as $res ){ $approved[ ] = [ 'id' => $count, 'title' => "some title" ]; $count++;$title=... ) 然后创建最终列表: $list[ ] = [ 'list' => 'approved', 'values' => $approved ]; return ['list' =&g
foreach ( $data as $res ){
$approved[ ] = [ 'id' => $count, 'title' => "some title" ];
$count++;$title=...
)
然后创建最终列表:
$list[ ] = [ 'list' => 'approved', 'values' => $approved ];
return ['list' => $list ];
在javascript中,我通过ajax调用获得以下结果:
this.myoutput = {};
this.http.get('backend_url).then(data => {
let result = this.helper.isJson( data.response ) || [ ];
console.log(result);
this.myoutput.approved = result.list.find( item => item.list === 'approved' );
console.log(this.myoutput.approved);
})
第一个console.log(结果)代码>为我提供了如下所有数据:
list: (1) […]
0: {…}
list: "approved"
values: (13) […]
0: Object { id: "1", title: "aaa" }
1: Object { id: "2", title: "bbb" }
2: Object { id: "3", title: "ccc" }
this.myoutput.approved = result.values.find( item => item.id === "3" );
但是console.log(this.myoutput.approved)代码>给我未定义的。我在这里做错了什么吗?保存数组值的键名为values
,而不是list
。因此,这应该是可行的:
this.myoutput = {};
this.http.get('backend_url).then(data => {
let result = this.helper.isJson( data.response ) || [ ];
console.log(result);
this.myoutput.approved = result.values.find( item => item.list === 'approved' );
console.log(this.myoutput.approved);
})
但你想找到什么?如果检查值数组,它包含id
和title
,而不是list
?因此,要在数组中查找一项,请执行以下操作:
list: (1) […]
0: {…}
list: "approved"
values: (13) […]
0: Object { id: "1", title: "aaa" }
1: Object { id: "2", title: "bbb" }
2: Object { id: "3", title: "ccc" }
this.myoutput.approved = result.values.find( item => item.id === "3" );
对我来说会更有意义。请注意,如果未找到任何内容,则find()
方法将根据规范返回未定义的:
祝你好运