gpt4 book ai didi

javascript - 检查等价性

转载 作者:行者123 更新时间:2023-11-28 09:29:04 27 4
gpt4 key购买 nike

好吧,我在这里遗漏了一些东西,我似乎找不到它,因为逻辑对我来说似乎是正确的,但我确信我没有看到错误。

var VisibleMarkers = function() {
var filtered = _.reject(Gmaps.map.markers, function(marker) {
return marker.grade != $('.mapDataGrade').val() && !_.contains(marker.subjects,$('.mapDataSubjects').val())
});
return filtered
}

我正在使用 underscore.js 和 jQuery 来简化我的 JavaScript 工作。

所以现在,我正在通过选择要拒绝的数据进行检查,然后在(谷歌) map 上显示过滤后的标记(如果有帮助的话,这是使用 gmaps4rails ,它工作得很好,正是这段 javascript 让我失去了头上最后一根头发)。

目前,“.mapDataGrade”选择的代码功能 100% 正确,但“.mapDataSubjects”则不然。现在,标记对象有一个主题的 json 数组(这是针对学生的),数组中的每个项目都有其 ID。我应该检查的是这个 ID。

有人能看到我做错了什么吗?

如果需要包含更多信息,请告诉我。

这是使用 gmaps4rails 的 RoR 应用程序上的纯 JavaScript

最佳答案

Now the markers object has a json array of the subjects (this is for students) and each item in the array has its ID. Its this ID that I am supposed to be checking.

_.contains 比较值,但听起来您希望迭代器将值与对象的“id”属性进行比较。为此,_.some会工作;它类似于 contains,只不过您可以将比较编写为函数,而不是比较值:

Returns true if any of the values in the list pass the iterator truth test.

使用方法如下:

!_.some(marker.subjects, function(subject) {
return subject.id == $('.mapDataSubjects').val();
})

如果我是对的,整行应该是这样的:

return marker.grade != $('.mapDataGrade').val() && 

// check that none of the subjects is a match
!_.some(marker.subjects, function(subject) {

// the current subject is a match if its ID matches the selected value
return subject.id == $('.mapDataSubjects').val();
});

关于javascript - 检查等价性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com