$ .grep在将ID与变量进行比较时返回undefined

时间:2015-07-14 09:28:48

标签: javascript jquery each

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

我尝试了以下代码:

$.each(placementStructureHaspItems, function () {
    var haspItem = $.grep(placementValuesHaspItems, function (e) {
        return e.HASPID === this.HASPID;
    })[0];
    if (haspItem != undefined) {
        this.CommentsPreText = haspItem.CommentsPreText;
    }
});
对于每个对象,

haspItem总是undefined。 如果我在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使用静态数字,但不是对象的属性,它的计算结果是相同的数字。

提前感谢您的帮助。

0 个答案:

没有答案