Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax如何通过find方法在对象数组中查找内容_Javascript_Php_Ajax - Fatal编程技术网

Javascript Ajax如何通过find方法在对象数组中查找内容

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

在后端PHP中,我在循环中定义了以下内容:

 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()
方法将根据规范返回
未定义的

祝你好运