Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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/2/jquery/71.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 $.grep在将ID与变量进行比较时返回未定义_Javascript_Jquery_Each - Fatal编程技术网

Javascript $.grep在将ID与变量进行比较时返回未定义

Javascript $.grep在将ID与变量进行比较时返回未定义,javascript,jquery,each,Javascript,Jquery,Each,我有一个$。我的代码中的每个循环都会在一个数组中的项目中循环,并尝试在另一个数组中查找相应的项目。 一个数组是结构数组,包含我需要的所有项。另一个数组仅包含具有关联值的项 我尝试了以下代码: $.each(placementStructureHaspItems, function () { var haspItem = $.grep(placementValuesHaspItems, function (e) { return e.HASPID === this.HASP

我有一个
$。我的代码中的每个
循环都会在一个数组中的项目中循环,并尝试在另一个数组中查找相应的项目。
一个数组是结构数组,包含我需要的所有项。另一个数组仅包含具有关联值的项

我尝试了以下代码:

$.each(placementStructureHaspItems, function () {
    var haspItem = $.grep(placementValuesHaspItems, function (e) {
        return e.HASPID === this.HASPID;
    })[0];
    if (haspItem != undefined) {
        this.CommentsPreText = haspItem.CommentsPreText;
    }
});
对于每个对象,
haspItem
始终是
未定义的
。 如果我在chrome中的控制台中运行,我无法发布我得到的图像,因此我将尝试将其格式化为尽可能好的格式,其中顶行是输入chrome的代码,第二行是给定的结果:

$.grep($scope.HaspitemsFromPlacement, function (e) { return e.HASPID === this.HASPID; })[0];
Undefined

$.grep($scope.HaspitemsFromPlacement, function (e) { return e.HASPID === 2; })[0];
Object {HASPID: 2, ParentID: 1, NumberingType: 0, Text: null, YesNoID: 0…}

this.HASPID
2
我这里的主要问题是,为什么grep使用的是静态数字,而不是计算为相同数字的对象的属性


提前感谢您的帮助。

:“处理每个项所依据的函数。函数的第一个参数是项,第二个参数是索引。函数应返回布尔值。这将是全局窗口对象”
=
始终期望右侧值不仅在
值方面,而且在
类型方面,与左侧值相等!就像比较
string
string
int
int
等,我建议你要么试试
=
,要么试试
e.HASPID===parseInt(this.HASPID)
@Andreas-谢谢你的回答,但是你能解释一下粘贴它到底是什么意思吗?据我所知,我已经正确地使用了grep,如果我使用不正确,请纠正我@古鲁帕萨德——我刚刚尝试了这两种方法,结果相同。当在chromes控制台中运行时,它返回
未定义的
,不幸的是,如上所述。是否有一个全局变量
HASPID
(也可以通过
窗口.HASPID
)呢?这行
函数(e){return e e.HASPID==This.HASPID;})
$中。grep()
调用相当于
函数(e){return e.HASPID==window.HASPID;})
-因为我在第一条评论中用了粗体部分;):“处理每个项所依据的函数。函数的第一个参数是项,第二个参数是索引。函数应该返回一个布尔值。这将是全局窗口对象”
==
总是期望右手边的值与左手边的值相等,不仅在
值方面,而且在
类型方面也是如此!比如将
字符串
字符串
int
int
等进行比较,我建议尝试
=
或尝试
e.HASPID==parseInt(this.HASPID)
@Andreas-谢谢你的回答,但是你能解释一下你粘贴它给我的确切意思吗?据我所知,我正确使用了grep,如果我使用的不正确,请纠正我。@gurupasad-我刚刚尝试了这两种方法,结果相同。当在chromes控制台中运行时,它返回
未定义的
,与上面unf一样很奇怪。是否有一个全局变量
HASPID
(也可以通过
window.HASPID
访问该变量)?这行
函数(e){return e.HASPID==This.HASPID;})
$.grep()调用中相当于
函数(e){return e.HASPID==window HASPID;})
-因为我在第一条评论中的粗体部分;)