我的代码中有一个$.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使用静态数字,但不是对象的属性,它的计算结果是相同的数字。
提前感谢您的帮助。