gpt4 book ai didi

javascript - _lodash 可以测试数组来检查数组元素是否具有具有特定值的字段吗?

转载 作者:行者123 更新时间:2023-12-03 00:14:15 24 4
gpt4 key购买 nike

我有一个变量 selectedSubTopicId 和一个 subTopic 对象数组:objectiveDetail.subTopics[]。每个subTopic 对象都有一个字段 subTopicId

我想用它来启用或禁用“添加主题”按钮。我可以在 ng-disabled 中使用 lodash 来测试该数组吗?如果数组的任何 subTopic 对象元素的 subTopicId 等于 selectedSubTopicId,则报告 true .

以下是 ObjectiveDetail 中的数据示例。在本例中,subTopics 数组中只有一个元素。

{"objectiveDetailId":285,
"objectiveId":29,
"number":1,
"text":"x",
"subTopics":[{"subTopicId":1,
"number":1}]
}

这是 thefourtheye 建议的我的 Angular Controller 中的代码:

    $scope.checkDuplicateSubTopicId = function (objectiveDetail, sSubTopic) {
if (_.some(objectiveDetail.subTopics, function(currentTopic) {
return _.contains(currentTopic, selectedSubTopicId);
})) {
return true;
} else {
return false;
}
}

我的未显示点击功能的按钮如下所示:

   <button data-ng-disabled="checkDuplicateSubTopicId(objectiveDetail, subTopicId)">
Add Topic
</button>

问题是它不太工作,并且按钮没有显示为禁用。

最佳答案

您没有询问如何操作,但我想这就是您想知道的。

正如我已经提到的,您可以使用 _.some ,它将迭代数组中的每个元素并执行回调。在该回调中,您可以测试主题​​属性的值是否等于变量的值:

var result = _.some(objectiveDetail.subTopics, function (topic) {
return topic.subTopicId === selectedSubTopicId;
});

_.some 如果找到回调返回 true 的元素,将跳过剩余元素。

关于javascript - _lodash 可以测试数组来检查数组元素是否具有具有特定值的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21278661/

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